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

Обновление 2014 года.

Теперь есть способ получить Accept-Languages ​​в Firefox и Chrome с помощью navigator.languages ​​ (работает в Chrome> = 32 и Firefox> = 32)

Кроме того, navigator.language в Firefox в эти годы отражает наиболее предпочтительный язык контента, а не язык пользовательского интерфейса. Но поскольку это понятие еще не поддерживается другими браузерами, это не очень полезно.

Итак, чтобы получить наиболее предпочтительный язык контента, когда это возможно, и использовать язык пользовательского интерфейса как резерв:

navigator.languages
    ? navigator.languages[0]
    : (navigator.language || navigator.userLanguage)

23
задан vfclists 4 December 2010 в 15:56
поделиться

6 ответов

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

34
ответ дан Jim 4 December 2010 в 15:56
поделиться

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

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

1
ответ дан High Performance Mark 4 December 2010 в 15:56
поделиться

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

7
ответ дан Femaref 4 December 2010 в 15:56
поделиться

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

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

6
ответ дан Scott Stafford 4 December 2010 в 15:56
поделиться

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

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

0
ответ дан riwalk 4 December 2010 в 15:56
поделиться

Да. Хотя в некоторых случаях это создает тот же хеш для различных строк.

0
ответ дан 28 November 2019 в 23:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: