md5 ($ соль. $ пароль); как вернуть исходный текст?

Я сохранил пароль в базе данных, используя md5 с солью. Я хочу получить исходный пароль из значения пароля md5.


person Mansour hassan    schedule 15.06.2016    source источник
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
comment
я бы использовал радужную таблицу, если бы соль была известна. Но все же мда..... - person ArtisticPhoenix; 16.06.2016
comment
Я имею в виду, что на самом деле нет причин получать исходный пароль. Если вы потеряли свой пароль, вы должны просто сбросить его (во-первых, как вы получили соленый хэш). Если вы хотите атаковать сервер, вам, вероятно, не следует этого делать. - person Michael Zhang; 16.06.2016
comment
^ то, что он сказал, также, если вам нужно его сбросить, просто используйте php и md5, чтобы создать новый хеш, и обновите запись БД для пользователя. Может быть, если вы объясните, почему вам это нужно, мы могли бы помочь решить настоящую проблему. - person ArtisticPhoenix; 16.06.2016