Всегда ли алгоритм MD5 генерирует одинаковые выходные данные для одной и той же строки? - PullRequest
23 голосов
/ 04 декабря 2010

Всегда ли алгоритм MD5 генерирует один и тот же вывод для одной и той же строки?

Является ли использование соли единственным для получения другого результата?

Ответы [ 5 ]

34 голосов
/ 04 декабря 2010

Да, иначе MD5 будет бесполезен для таких вещей, как проверка файла. Какую причину вы бы указали для недетерминированного вывода?

7 голосов
/ 04 декабря 2010

Да, алгоритм хеширования всегда выдает один и тот же результат.Если вы используете одну и ту же соль, это также всегда будет давать один и тот же вывод для данного входа.

6 голосов
/ 04 декабря 2010

Да, MD5 всегда выдает один и тот же сигнал при одинаковом входе. Вот как это используется для паролей. Вы сохраняете хэш в базе данных, затем, когда пользователь вводит свой пароль, он снова хэшируется и сравниваются два хэша.

ПРИМЕЧАНИЕ. MD5 не рекомендуется для хэширования паролей, поскольку он криптографически слаб. Доступны более подходящие криптографические хеши, такие как bcrypt . Однако исторически оно использовалось для этой цели.

1 голос
/ 04 декабря 2010

Да MD5 является детерминированным, и это считается желательной характеристикой для многих приложений функций дайджеста сообщений.

Что касается использования соли, то под этим вы действительно подразумеваете «изменение входной строки каким-то тонким способом», не так ли? И, конечно, это также является желательной характеристикой дайджестов сообщений, поскольку они создают (с очень высокой вероятностью) разный дайджест для другого сообщения.

0 голосов
/ 04 декабря 2010

Да. MD5 - это хеш-функция.

Это не означает, что MD5 является уникальным. Несколько входов могут отображаться на один и тот же хеш, но любой заданный вход имеет только один хеш.

...