Почему хеши паролей MD5/SHA1 невозможно расшифровать?

Недавно я прочитал статью о хешировании паролей.

Как хеши MD5 или SHA1 создаются так, что их невозможно расшифровать?? То, что я думаю, это то, что она должна быть зашифровывать строку с помощью определенной ФОРМУЛЫ (она всегда дает один и тот же хеш для одной и той же строки; поэтому не должно быть никакой рандомизации), и поэтому мы должны иметь возможность расшифровать ее с помощью одной и той же ФОРМУЛЫ?? Или люди не знают форуму?

3 ответа

Решение

MD5 и SHA1 не являются алгоритмами шифрования. Это алгоритмы хеширования.

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

Например:

15 Мод 4 = 3

Даже если вы знаете, что формула

х Мод 4

вы не можете вывести x, так как это может быть 3, 7, 11, 15 и т. д.

Очевидно, MD5 и SHA1 намного сложнее!

В приведенном выше примере умножение 15 всегда даст вам ответ 3, но никто не сможет определить исходное число. Это приводит к столкновениям, когда несколько входных строк могут давать одинаковый хеш:

http://en.wikipedia.org/wiki/MD5

В Википедии есть информация об используемом алгоритме:

http://en.wikipedia.org/wiki/MD5

Все правильно объяснил псих, я бы хотел добавить еще один момент к этому:

15 Мод 4 = 3

Даже если вы знаете, что формула

х Мод 4

вы не можете вывести x, так как это может быть 3, 7, 11, 15 и т. д.

Мы можем пойти еще ближе к нашей ситуации и получить результат действия (например, у вас есть хеш как результат действия и описание действия)

х мод 4 = 3

x может быть 12, 13, 14 или 15, что не говорит о том, какое входящее целое число мы имели.

Я всегда считал, что md5 и sha1 не могут быть расшифрованы и используются в моих приложениях. Но к моему удивлению я нашел несколько сайтов, которые выполняют эту процедуру. см. http://www.crypt-security.com/ Поэтому эта процедура недостаточно безопасна

Другие вопросы по тегам