В настоящее время я использую MD5 и SHA1 для сохранения паролей моих пользователей в базе данных, но я не знаю, как вернуть их в виде обычного текста. Я попытался отменить тот же код, который я использовал для шифрования паролей, но он дает мне ошибку.
Код, который я использую для шифрования паролей:
$hashedpassword = md5(md5(sha1(sha1(md5($normalpassword)))));
Я попытался сделать то же самое назад, как это
$normalpassword = md5(md5(sha1(sha1(md5($hashedpassword)))));
Тогда я понял, что это что-то забавное 🙁 !! Пожалуйста, помогите мне …
MD5 и SHA-1 – это односторонние хэш-функции, то есть вы не можете вернуть исходную строку из значения хэша.
Вы не можете. Хеширование – это один из способов, вам нужно создать новый хэш ввода в форме входа и проверить, соответствует ли он сохраненному хэшу.
Хеширование не шифруется.
Хеш-функцию, такую как MD5 и SHA1, не может быть отменена, ее можно проверить только. Обычно это используется для использования хэш-функции, потому что злоумышленник не может получить четкие пароли с помощью хэшей (возможны другие атаки, например, использование радужных таблиц).
Более подробную информацию можно найти здесь: http://en.wikipedia.org/wiki/Cryptographic_hash_function
Если вы хотите хранить хэшированные пароли в базах данных, взгляните на PHPass . Это хороший класс для хэша php и проверки паролей, насколько это возможно в настоящее время, и широко используется в современных веб-приложениях на базе php.
Почему вы даже шифруете их, если в конце концов хотите их вернуть? Хеширование используется именно по причине того, что UNABLE возвращает пароли в открытом виде.
Используйте симметричный шифр, если вы хотите их вернуть.