шифрование пароля по DES
Не понимаю один момент ..
Во многих системах используется шифрование паролей пользователей с помощью алгоритма DES (например, в unix-like системах). Пароль в зашифрованном виде хранится в passwd.
Но по какому ключу шифруется пароль?? Откуда он берется? Или там наоборот – шифруется какой-то известный текст по ключу в виде пароля? Но тогда какой текст?
Допускаю, что этот ключ зашит в функции crypt() .. но как тогда работают дешифраторы (такие как John the Ripper)? Они ведь не знают из какой системы взят зашифрованный пароль ..
Разъясните, пожалуйста ..
пароль пользователя используется как ключ шифрования блока данных размером 64 бита заполненного нулями, полученный блок данных еще раз шифруется паролем пользователя и так несколько раз (если я правильно помню – 25 раундов). результат упаковывется в строку (транформируется в печатные символы)
я описал алгоритм работы старых версий crypt(3) в Linux/BSD, так когда то шифровались пароли в /etc/passwd.
комментариев: 1515 документов: 44 редакций: 5786
пароль пользователя используется как ключ шифрования "
поспорю, пароль не используется в качестве ключа, чтоб получить ключ надо захешировать пароль
комментариев: 9796 документов: 488 редакций: 5664
Имеется ввиду способ использования шифра DES в необратимом преобразовании вместо функции хэширования. Позднее его действительно заменили на md5