Я сохранил пароль в базе данных, используя md5 с солью. Я хочу получить исходный пароль из значения пароля md5.
md5 ($ соль. $ пароль); как вернуть исходный текст?
comment
Вы не можете, md5 - это не шифрование, это хэш, который является односторонним. Хотя, если вы хотите вернуть простой текстовый пароль, я подозреваю, что вы планируете что-то, чего, возможно, не следует делать.
- person Jonnix   schedule 16.06.2016
comment
О, кстати, не используйте md5 (даже с солью), если можете, вместо этого попробуйте использовать API пароля PHP. (тоже хеш, односторонний, но более безопасный).
- person Jonnix   schedule 16.06.2016
comment
Весь смысл использования хеширования вместо шифрования паролей состоит в том, чтобы предотвратить это.
- person Barmar   schedule 16.06.2016
comment
вы можете создать радужную таблицу, используя свою соль и все возможные комбинации слов или букв (ведьма - это их куча), обычно это делается путем заполнения базы данных, после чего вы можете сравнить хэш с радужной таблицей, запросив указанную базу данных для нее. :)
- person ArtisticPhoenix   schedule 16.06.2016
Ответы (1)
Короткий ответ: нет. Суть MD5 в том, что он создает уникальный отпечаток для строки. Это не шифрование, поэтому его нельзя отменить.
Технически вы, вероятно, могли бы проводить атаки грубой силы, но это практически невозможно, учитывая количество возможных комбинаций. Конечно, существует множество атак на MD5, таких как генерация коллизий или увеличение длины хеша, но, как правило, нет способа получить исходный пароль. Извиняюсь.
По какой причине вы хотите получить исходный пароль?
person
Michael Zhang
schedule
15.06.2016
я бы использовал радужную таблицу, если бы соль была известна. Но все же мда.....
- person ArtisticPhoenix; 16.06.2016
Я имею в виду, что на самом деле нет причин получать исходный пароль. Если вы потеряли свой пароль, вы должны просто сбросить его (во-первых, как вы получили соленый хэш). Если вы хотите атаковать сервер, вам, вероятно, не следует этого делать.
- person Michael Zhang; 16.06.2016
^ то, что он сказал, также, если вам нужно его сбросить, просто используйте php и md5, чтобы создать новый хеш, и обновите запись БД для пользователя. Может быть, если вы объясните, почему вам это нужно, мы могли бы помочь решить настоящую проблему.
- person ArtisticPhoenix; 16.06.2016