Можно ли взломать пароль sha1 (md5 ('password'))? - PullRequest
8 голосов
/ 23 апреля 2011

Это вопрос: можно ли взломать пароль sha1 (md5 ('password'))?

Или как лучше md5 в sha1 или sha1 в md5?

Спасибо!

Ответы [ 6 ]

11 голосов
/ 23 апреля 2011

многократное хеширование не защищает ваш пароль.просто используйте безопасный, соленый хеш.

проверить http://php.net/hash

3 голосов
/ 23 апреля 2011

Поскольку никто не ответил на первоначальный вопрос: да, это возможно.

Что касается второго вопроса: md5 (sha1 («пароль»)) фактически снизит безопасность по сравнению с просто использованием sha1, потому что размер хеша будет уменьшен. И наоборот, тоже не помогает.

Всегда используйте соления !

3 голосов
/ 23 апреля 2011

Согласно статье MD5 Википедии :

" Безопасность хеш-функции MD5 серьезно нарушена. "

Таким образом, добавление MD5 в SHA1 не сделает вашу вещь более безопасной. Я бы даже сказал, что хэширование уже хешированной вещи не сделает ее более безопасной.

Распространенным механизмом, который многие используют для хранения паролей, является солт-запись над хешированной строкой.

1 голос
/ 23 апреля 2011

md5 даст вам строку из 32 символов.
sha1 даст вам 40 символов символов.

Но в обоих случаях эти строки будут содержать только шестнадцатеричные символы, что означает только 16 возможных значений для каждой позиции: 0-9 и a-f


Я не думаю, что использование md5 + sha1 (независимо от того, в каком порядке вы их называете) - это хорошая идея: использование только одного из них в вашем пароле, вероятно, будет безопаснее.

Просто подумайте:

  • В вашем пароле может быть, скажем, не менее 8 символов
  • Каждый из этих 8 символов может представлять собой букву (верхний или нижний регистр) , число, специальный символ; что означает по крайней мере что-то около 75 возможностей для каждой позиции

Не думаете ли вы, что это даст больше возможных комбинаций, чем 32 шестнадцатеричных символа?


Просто используйте одну функцию хеширования и соль ваш пароль.

0 голосов
/ 10 сентября 2012

Использование двух хешей не делает ваш алгоритм безопасным;хэширование один раз, использование лучшего (с большим количеством битов) алгоритма и добавление соли.Например:

sha1('This is some salt' . $string . 'othersalt')

Это намного безопаснее по сравнению с радужными столами.Я имею в виду: не совсем безопасно , поскольку злоумышленник может построить радужный стол, но это безопаснее , потому что обычные радужные таблицы не будут работать.Также обратите внимание, что оба алгоритма были взломаны: я настоятельно рекомендую использовать SHA-2, например sha-128 или sha-256.Они до сих пор не сломаны.
Последняя вещь: всегда соль хешей на радужных столах.Всегда используйте лучшие хэши: SHA-3 идет, вы можете использовать его.

0 голосов
/ 23 апреля 2011

Объединение функций хэширования друг в друге не сделает ваши хэши более безопасными. Радужную таблицу все еще можно построить, чтобы злоумышленник мог прочитать большое количество паролей в вашей базе данных.

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

...