Exemple #1
0
        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);
        }
Exemple #2
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))));
        }
Exemple #3
0
        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"));
        }
Exemple #4
0
        /// <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("Ошибка");
                    }
                }
            }
        }
Exemple #7
0
        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);
        }
Exemple #8
0
        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);
                }
            }
        }