MD5Crypt по сути является заменой устаревшей функции Unix Crypt. Он был введен в freebsd, а также принят другими группами.
Основная идея такова:
- хеш - хороший способ сохранить пароль
- вы берете введенный пользователем пароль и хешируете его
- сравните его с сохраненным хешем
- если хеш совпадает, пароли совпадают
Но есть проблема:
- Предположим, вы выбрали пароль "jeff", а я также выбрал пароль "jeff".
- Теперь оба наших хэша паролей совпадают.
- Так что, если я увижу сохраненные хэш-коды, я буду знать, что ваш пароль такой же, как у меня, "jeff".
Итак, мы можем добавить «солт» строку к паролю.
- Это может быть любая случайная вещь.
- Предположим, что для вашей учетной записи это "zuzu", а для моей учетной записи это "rjrj".
- Теперь мы хешируем строку «jeffzuzu» для вашего пароля и «jeffrjrj» для моего пароля.
- Теперь у нас есть разные значения хеша для нашего пароля.
- Мы можем безопасно хранить значение соли с помощью хешированного пароля, поскольку даже знание значения соли не поможет расшифровать хэш.
Вы упоминаете .net, на другом форуме есть указатель на это:
System.Security.Cryptography.MD5CryptoServiceProvider md5 = new
System.Security.Cryptography.MD5CryptoServiceProvider();
string hash =BitConverter.ToString((md5.ComputeHash(
System.Text.ASCIIEncoding.Default.GetBytes(stringtohash) ) ));
НТН!