private static void ManualCheck(string inputClearPassword) { Console.WriteLine("Password: "******" ", bytes1.Select(b => b.ToString())); Console.WriteLine("String in ASCII Bytes: " + input1); // hash Bytes byte[] bytes2 = new MD5CryptoServiceProvider().ComputeHash(bytes1); string input2 = string.Join(" ", bytes2.Select(b => b.ToString())); Console.WriteLine("Bytes after MD5 Hash: " + input2); Console.WriteLine("MD5 Sum: " + GetMD5Hash(bytes2)); // get hashed ASCII Bytes string input3 = Encoding.ASCII.GetString(bytes2); Console.WriteLine("String from ASCII Bytes after MD5 Hash: " + input3); // backward string in bytes byte[] bytes3 = Encoding.ASCII.GetBytes(input3); string input4 = string.Join(" ", bytes3.Select(b => b.ToString())); Console.WriteLine("Reverse:"); Console.WriteLine("Bytes from ASCII String after MD5 Hash: " + input4); Console.WriteLine("MD5 Sum: " + GetMD5Hash(bytes3)); Console.ReadKey(); Environment.Exit(0); }
public static string PreparePassword(string password) { var bytes = Encoding.UTF8.GetBytes(password); var hashBytes = new MD5CryptoServiceProvider().ComputeHash(bytes); return(String.Join(String.Empty, hashBytes.Select(b => Convert.ToString(b, 16)))); }
public object Gravatar(string email) { byte[] rawHash = new MD5CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(email.ToLower())); string hash = rawHash.Select(b => b.ToString("x2")).Aggregate((c, n) => c += n); return(Resource( System.Net.WebRequest.Create("http://www.gravatar.com/avatar/" + hash).GetResponse().GetResponseStream(), "image/jpg")); }
/// <summary> /// Calculates MD5 hash of required resource. /// /// Method has to run asynchronous. /// Resource can be any of type: http page, ftp file or local file. /// </summary> /// <param name="resource">Uri of resource</param> /// <returns>MD5 hash</returns> public static async Task <string> GetMD5Async(this Uri resource) { var data = await new WebClient().DownloadDataTaskAsync(resource); return(await Task.Run(() => { var byteHash = new MD5CryptoServiceProvider().ComputeHash(data); var hashChars = byteHash.Select(b => b.ToString("X2")); return string.Join("", hashChars); })); }
private void SaveChanges_Click(object sender, RoutedEventArgs e) { string oldPassword = OldPasswordInput.Password; string newPassword = PasswordInput.Password; string passwordRepeat = PasswordRepeatInput.Password; var hash = new MD5CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(oldPassword)); string passwordHash = string.Concat(hash.Select(b => b.ToString("x2"))); if (passwordHash != user.userPasswordHash) { MessageBox.Show("Неверно введён старый пароль.", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); return; } else if (newPassword.Length < 6) { MessageBox.Show("Новый пароль должен содержать не менее 6 символов. Пожалуйста, позаботьтесь о вашей безопасности и придумайте пароль подлиннее.", "Слишком короткий пароль", MessageBoxButton.OK, MessageBoxImage.Error); return; } else if (newPassword.Length > 128) { var result = MessageBox.Show("Ваш новый пароль длинее 128 символов. Его придется долго вводить и ещё дольше запоминать. Вы уверены, хотите продолжить?", "Очень длинный пароль", MessageBoxButton.YesNo, MessageBoxImage.Exclamation); if (result == MessageBoxResult.Yes) { } else { return; } } if (newPassword != passwordRepeat) { MessageBox.Show("Повторно введённый пароль не совпадает с новым паролем. Пожалуйста, убедитесь в том, что Вы ввели всё верно.", "Неверный повторно введённый пароль", MessageBoxButton.OK, MessageBoxImage.Error); return; } else { var hashNew = new MD5CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(newPassword)); string passwordHashNew = string.Concat(hashNew.Select(b => b.ToString("x2"))); user.userPasswordHash = passwordHashNew; db.Entry(user).Property("userPasswordHash").IsModified = true; db.SaveChanges(); MessageBox.Show("Пароль успешно обновлён!", "Смена пароля", MessageBoxButton.OK, MessageBoxImage.Information); ListenerProfile listenerProfile = new ListenerProfile(user); listenerProfile.Show(); this.Close(); } }
private void LogIn_Click(object sender, RoutedEventArgs e) { string login = LoginInput.Text.Trim(); string password = PasswordInput.Password; if (login == "" || password == "") { MessageBox.Show("Кажется, Вы заполнили не все поля. Пожалуйста, исправьте это.", "Не все поля заполнены", MessageBoxButton.OK, MessageBoxImage.Error); return; } else { var hash = new MD5CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(password)); string passwordHash = string.Concat(hash.Select(b => b.ToString("x2"))); users user; user = db.users.Where(u => u.userLogin == login && u.userPasswordHash == passwordHash).FirstOrDefault(); if (user is null) { MessageBox.Show("Такого пользователя нет или неверно введен пароль", "Ошибка входа", MessageBoxButton.OK, MessageBoxImage.Error); } else { int userId = user.userId; int userAccessLevel = user.userAccessLevel; if (userAccessLevel == 1) { ListenerProfile listenerProfile = new ListenerProfile(user); listenerProfile.Show(); this.Close(); } else if (userAccessLevel == 2) { HostProfile hostProfile = new HostProfile(); hostProfile.Show(); this.Close(); } else { MessageBox.Show("Ошибка"); } } } }
public static int Generate(UdpTestParameters parms) { var hostName = System.Environment.MachineName + "." + Microsoft.Win32.Registry.LocalMachine.OpenSubKey( "SYSTEM\\CurrentControlSet\\services\\Tcpip\\Parameters").GetValue("Domain", "").ToString(); IPAddress broadcast; if (!IPAddress.TryParse(parms.Host, out broadcast)) { broadcast = Dns.GetHostEntry(parms.Host).AddressList[0]; } Socket s = new Socket(broadcast.AddressFamily, SocketType.Dgram, ProtocolType.Udp); LogManager.GetCurrentClassLogger().Info("Start UDP Generation"); for (int i = 0; i < parms.NumMessages; i++) { JObject o = new JObject { { "Application", "udp-generator" }, { "Executable", "VP.Common.SvcFrm.Services.Host, Version=29.7.0.0, Culture=neutral, PublicKeyToken=null" }, { "RenderedMessage", "Responding to RequestSchedule message from 10.1.230.36 with Ack because: PRJ byte array is null." }, { "Team", "Manufacturing Software" }, { "RecordNumber", i }, { "Host", hostName }, { "UtcTimestamp", DateTime.UtcNow.ToString("o") }, { "Type", "VP.Fulfillment.Direct.Initialization.LogWrapper" }, { "Message", "Testgenerator udp message " + DateTime.UtcNow.ToString("o") }, { "Index", "logstash" } }; string hashedString = ""; foreach (var key in o) { hashedString += key.ToString(); } var source = ASCIIEncoding.ASCII.GetBytes(hashedString); var md5 = new MD5CryptoServiceProvider().ComputeHash(source); var hash = string.Concat(md5.Select(x => x.ToString("X2"))); o["md5"] = hash; byte[] sendbuf = Encoding.UTF8.GetBytes(o.ToString(Formatting.None)); IPEndPoint ep = new IPEndPoint(broadcast, parms.Port); s.SendTo(sendbuf, ep); if (i % 1000 == 0) { LogManager.GetCurrentClassLogger().Info("Sent {0} of {1} messages", i, parms.NumMessages); } Thread.Sleep(parms.SleepTimeMilliseconds); } LogManager.GetCurrentClassLogger().Info("Finished UDP Generation"); return(parms.NumMessages); }
private void SignUp_Click(object sender, RoutedEventArgs e) { string login = LoginInput.Text.Trim(); string email = EmailInput.Text.Trim(); string password = PasswordInput.Password; string passwordRepeat = PasswordRepeatInput.Password; if (login == "" || email == "" || password == "" || passwordRepeat == "") { MessageBox.Show("Кажется, Вы заполнили не все поля. Пожалуйста, исправьте это.", "Не все поля заполнены", MessageBoxButton.OK, MessageBoxImage.Error); return; } else if (login.Length < 2) { MessageBox.Show("Логин должен содержать как минимум 2 символа. Пожалуйста, придумайте более длинный логин.", "Слишком короткий логин", MessageBoxButton.OK, MessageBoxImage.Error); return; } else if (!Regex.IsMatch(login, @"^[A-Za-z0-9-_.]+[A-Za-z0-9-_]+$")) { MessageBox.Show("Введённый логин не соответствует требованиям. В логине можно использовать только следующие символы: латинские буквы, цифры, символы тире (-), подчеркивания (_) и точки (.), при этом последний символ точкой быть не может. Никаких пробелов и прочих символов быть не должно.", "Неверный логин", MessageBoxButton.OK, MessageBoxImage.Error); return; } else if (LoginExists(login)) { MessageBox.Show("Пользователь с таким логином уже существует. Пожалуйста, придумайте другой логин.", "Такой логин уже существует", MessageBoxButton.OK, MessageBoxImage.Error); return; } else if (!Regex.IsMatch(email, @"^[A-Za-z0-9._]+@[A-Za-z0-9]+(\.[A-Za-z]{2,3})+$")) { MessageBox.Show("Введённый адрес электронной почты не похож на настоящий. Пожалуйста, убедитесь, что Вы корректно ввели почту.", "Неверный адрес почты", MessageBoxButton.OK, MessageBoxImage.Error); return; } else if (EmailExists(email)) { MessageBox.Show("Пользователь с таким адресом почты уже существует. Пожалуйста, введите другой адрес.", "Данная почта уже используется", MessageBoxButton.OK, MessageBoxImage.Error); return; } else if (password.Length < 6) { MessageBox.Show("Пароль должен содержать не менее 6 символов. Пожалуйста, позаботьтесь о вашей безопасности и придумайте пароль подлиннее.", "Слишком короткий пароль", MessageBoxButton.OK, MessageBoxImage.Error); return; } else if (password.Length > 128) { var result = MessageBox.Show("Вы ввели пароль длинее 128 символов. Его придется долго вводить и ещё дольше запоминать. Вы уверены, хотите продолжить?", "Очень длинный пароль", MessageBoxButton.YesNo, MessageBoxImage.Exclamation); if (result == MessageBoxResult.Yes) { } else { return; } } if (password != passwordRepeat) { MessageBox.Show("Повторно введённый пароль не совпадает с изначальным паролем. Пожалуйста, убедитесь в том, что Вы ввели всё верно.", "Неверный повторно введённый пароль", MessageBoxButton.OK, MessageBoxImage.Error); return; } else { var hash = new MD5CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(password)); string passwordHash = string.Concat(hash.Select(b => b.ToString("x2"))); try { users user = new users { userLogin = login, userPasswordHash = passwordHash, userAccessLevel = 1 }; db.users.Add(user); db.SaveChanges(); int userId; userId = user.userId; listeners listener = new listeners { listenerId = userId, listenerEmail = email }; db.listeners.Add(listener); db.SaveChanges(); SignupInfo signupInfo = new SignupInfo(listener); signupInfo.Show(); this.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message + "\n" + ex.InnerException); } } }