Esempio n. 1
0
        static void Main(string[] args)
        {
            Console.BackgroundColor = ConsoleColor.White;
            Console.Clear();

            MyHash<string> ht = new MyHash<string>(901);
            int index, key, keyDel;
            string elToAdd, elToDel;

            //Заполнение хэш-таблицы
            do
            {
                Console.ForegroundColor = ConsoleColor.Black;
                Console.WriteLine("\nPlease, enter a key and an element to ADD");
                key = int.Parse(Console.ReadLine());
                elToAdd = Console.ReadLine();
                index = ht.AddHash(key, elToAdd);

                Console.ForegroundColor = ConsoleColor.Blue;
                Console.WriteLine("Index is " + index);
                Console.WriteLine("Size is {0}", ht.Size);
            } while (key != 777);

            //Проверка методов поиска
            do
            {
                Console.ForegroundColor = ConsoleColor.Black;
                Console.WriteLine("\nEnter a key to FIND ITS VALUE");
                key = int.Parse(Console.ReadLine());

                Console.ForegroundColor = ConsoleColor.Red;
                ht.PrintHashList(key);
            } while (key != 777);

            //Удаление элементов из таблицы
            do
            {
                Console.ForegroundColor = ConsoleColor.Black;
                Console.WriteLine("\nEnter a key and a value to DELETE an element");
                keyDel = int.Parse(Console.ReadLine());
                elToDel = Console.ReadLine();

                ht.Delete(keyDel, elToDel);
            } while (keyDel != 777);

            //Поиск с учетом удалений
            do
            {
                Console.ForegroundColor = ConsoleColor.Black;
                Console.WriteLine("\nEnter a key to FIND ITS VALUE");
                key = int.Parse(Console.ReadLine());

                Console.ForegroundColor = ConsoleColor.Red;
                ht.PrintHashList(key);
                Console.WriteLine("Size is {0}", ht.Size);
            } while (key != 777);

            Console.ReadLine();
        }
Esempio n. 2
0
        private static void DirectAddressTableForHashing()
        {
            MyHash hashSet = new MyHash(1000);

            Console.WriteLine(hashSet.Search(100));
            hashSet.Insert(100);
            Console.WriteLine(hashSet.Search(100));
            hashSet.Delete(100);
            Console.WriteLine(hashSet.Search(100));
        }
Esempio n. 3
0
        private void button3_Click(object sender, EventArgs e)
        {
            string txt       = textBox1.Text;
            string salt      = textBox_salt.Text.Trim().Length > 0 ? textBox_salt.Text.Trim() : "";
            int    repeatNum = textBox_repeatNum.Text.Trim().Length > 0 ? Convert.ToInt32(textBox_repeatNum.Text.Trim()) : 1;
            string type      = comboBox1.SelectedItem.ToString();

            string cipherTxt = MyHash.GetHash(txt, type, salt, repeatNum);

            textBox2.Text = cipherTxt;
        }
Esempio n. 4
0
        /// <summary>
        /// Задание 1
        /// </summary>
        private static void Task1()
        {
            CL.BeginApp("Реализовать простейшую хеш-функцию");
            System.Console.WriteLine("Ведите строку:");
            string s   = Console.ReadLine();
            int    res = MyHash.Hash(s);

            Console.WriteLine(res);

            CL.ConsolePause();
            Menu();
        }
Esempio n. 5
0
        private async System.Threading.Tasks.Task LoginAsync()
        {
            if (String.IsNullOrEmpty(UserName) || String.IsNullOrEmpty(Password))
            {
                isIncorrect = true;
                return;
            }
            else if (InternetConnection.Connection)
            {
                MyToken myToken = new MyToken();
                if (!await myToken.RequestPasswordToken(UserName, Password))
                {
                    isIncorrect = true;
                    return;
                }
                else
                {
                    HttpClient client = new HttpClient();
                    client.SetBearerToken(MyToken.requestPasswordToken.AccessToken);
                    var res = await client.GetAsync("https://localhost:44370/api/UserLicence");

                    if (_dbContext.Users.Count(t => t.Name == UserName) == 0)
                    {
                        byte[] PasByte = MyHash.GenerateSaltedHash(Encoding.Unicode.GetBytes(Password));
                        User   User    = new User();
                        User.Name     = UserName;
                        User.Password = PasByte;
                        _dbContext.Add(User);
                        _dbContext.SaveChanges();
                    }
                }
            }
            else
            {
                User User = new User();

                if (_dbContext.Users.Count(t => t.Name == UserName) != 0)
                {
                    User = _dbContext.Users.Where(t => t.Name == UserName).FirstOrDefault();
                }
                else
                {
                    isIncorrect = true;
                    return;
                }
            }
        }
        /// <summary>
        /// Метод авторизации, получает логин&пароль пользователя после чего хеширует его и сравнивает с хешированным паролем из БД
        /// если успех - отгружает имена всех юзеров для общения и все переписки пользователя
        /// </summary>
        public bool Authorisation(string login, string password, ref IDictionary <string, string> messages, ref IDictionary <string, bool> usersInDB)
        {
            // достаём юзера из базы если он существует
            User user = users.FirstOrDefault(u => u.UserName == login);

            if (user != null && MyHash.Authefication(user.HashedPassword, password))
            {
                using (var db = new DBContext())
                {
                    Messages = new List <Message>();
                    Messages.AddRange(db.Messages.Where(m => m.FromUser == login || m.ToUser == login));

                    foreach (var item in Messages)
                    {
                        if (item.ToUser != user.UserName)
                        {
                            messages.Add(item.ToUser, item.MessageData);
                        }
                        else
                        {
                            messages.Add(item.FromUser, item.MessageData);
                        }
                    }
                }

                user.operationContext = OperationContext.Current;

                // передача данных о именах и гедере
                foreach (var item in users)
                {
                    //что бы не добавлять себя
                    if (login != item.UserName)
                    {
                        usersInDB.Add(item.UserName, item.Gender);
                    }
                }


                return(true);
            }
            return(false);
        }
        public bool Registration(string userName, bool gender, string password)
        {
            try
            {
                using (var usersDB = new DBContext())
                {
                    if (users.FirstOrDefault(u => u.UserName == userName) == null)
                    {
                        var user = new User()
                        {
                            UserName = userName,
                            Gender   = gender,
                            // хеширование пароля происходит в статическом классе
                            HashedPassword = MyHash.HashedPassword(password),
                            // всем вновь созданным юзерам присваевается 1 ранг - юзер
                            Rank = usersDB.UserRanks.FirstOrDefault(r => r.RankID == 1),
                        };

                        // добавляем в БД
                        usersDB.Users.Add(user);
                        // в серверный список
                        users.Add(user);

                        usersDB.SaveChanges();

                        // новый пользователь успешно зарегестрирован
                        return(true);
                    }
                    else
                    {
                        //пользователь с таким именем уже существует
                        return(false);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                throw;
            }
        }
Esempio n. 8
0
 public void Hash_MultipleCharString_DoesTheFunctionProperly(string multipleChar, int expectedResult)
 {
     Assert.That(MyHash.Hash(multipleChar, _hash.Length), Is.EqualTo(expectedResult));
 }
Esempio n. 9
0
 public void Hash_SingleCharString_ShouldReturnCharCodeModSize(string oneChar, int expectedResult)
 {
     Assert.That(MyHash.Hash(oneChar, _hash.Length), Is.EqualTo(expectedResult));
 }
Esempio n. 10
0
        public IHttpActionResult AjouterProfesseur([FromBody] ProfesseurNewModel professeur)
        {
            string message = string.Empty;

            using (var txscope = new TransactionScope(TransactionScopeOption.RequiresNew))
            {
                try
                {
                    if (ModelState.IsValid)
                    {
                        var idProfesseur = BL.addProfesseur(professeur.prenom, professeur.nom);
                        BL.addUtilisateur(professeur.prenom.ToLower() + "@scotex.be", MyHash.HashPassword(professeur.prenom.ToLower()), professeur.prenom, professeur.nom);
                        if (professeur.discipline.Length != 0)
                        {
                            foreach (var discipline in professeur.discipline)
                            {
                                foreach (var niveau in professeur.niveau)
                                {
                                    BL.addProfesseurCours(idProfesseur, professeur.typeCours, discipline, niveau);
                                }
                            }
                        }
                        else
                        {
                            foreach (var niveau in professeur.niveau)
                            {
                                BL.addProfesseurCours(idProfesseur, professeur.typeCours, null, niveau);
                            }
                        }
                        txscope.Complete();
                        message = "Le professeur " + professeur.prenom + " " + professeur.nom + " a été ajouté !";
                        return(Content(HttpStatusCode.Created, idProfesseur));
                    }
                    else
                    {
                        return(BadRequest("Veuillez remplir tous les champs !"));
                    }
                }
                catch
                {
                    txscope.Dispose();
                    return(BadRequest("L'ajout n'a pas reussi !"));
                }
            }
        }