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(); }
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)); }
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; }
/// <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(); }
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; } }
public void Hash_MultipleCharString_DoesTheFunctionProperly(string multipleChar, int expectedResult) { Assert.That(MyHash.Hash(multipleChar, _hash.Length), Is.EqualTo(expectedResult)); }
public void Hash_SingleCharString_ShouldReturnCharCodeModSize(string oneChar, int expectedResult) { Assert.That(MyHash.Hash(oneChar, _hash.Length), Is.EqualTo(expectedResult)); }
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 !")); } } }