Вопрос по password-encryption, password-hash – Почему хеши паролей MD5 / SHA1 невозможно расшифровать?

3

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

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

@PanayiotisKarabassis MD5 и SHA1 не являются алгоритмами шифрования и не могут быть расшифрованы. Это хеш-функции. Ваш комментарий немного вводит в заблуждение. psych
В самом деле. Сожалею... Panayiotis Karabassis
По обратной формуле. Я далеко не эксперт в области криптографии, но идея в том, что у вас есть две функции: шифрование (открытый текст), которое может быть вычислено за разумное время, и дешифрование (шифрованный текст), который не может, по крайней мере, без ключа. Обычно лучшее, что вы можете сделать, это запустить все открытые тексты с помощью функции шифрования, пока не получите правильный. Это занимает экспоненциальное время, и из этого вытекает безопасность метода. Panayiotis Karabassis

Ваш Ответ

3   ответа
0

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

Это довольно старый вопрос, и он на самом деле не отвечает на вопрос ... Спасибо за присоединение к stackoverflow, я надеюсь, что вы останетесь здесь и найдете сайт полезным.
они не дешифруют хеш, всякий раз, когда кто-нибудь зашифровывает любой хеш, они сохраняют хеш и простой текст в своей базе данных, а затем в будущем любой вводит хеш, который отображает простой текст. Также все такие сайты делятся своими базами данных друг с другом, это означает, что вы можете зашифровать новый текст на одном сайте и найти хэш на другом
Существует ряд других способов определения совпадения для этих общих хеш-функций, но использование слова «расшифровка» неверно и вводит в заблуждение.
MD5 и SHA1 не могут быть расшифрованы, поскольку они не являются алгоритмами шифрования. Это хеш-функции. Хотя обратное проектирование не так-то просто, ничто не мешает мне найти MD5 («пароль») = 5f4dcc3b5aa765d61d8327deb882cf99 и сохранить хешированное значение в словаре, чтобы я мог выполнить поиск, чтобы определить, что входная строка была «полезной». ; пароль & APOS ;.
4

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

15 Mod 4 = 3

Even if you know the formula is

x Mod 4

you can't deduce x as it could be 3, 7, 11, 15 etc

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

x mod 4 = 3

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

Но с этой формулой легко найти вход, который соответствует выходу. Так что найти первый прообраз легко. Существенным свойством криптографического хэша является то, что вы не можете найти любой вход, соответствующий данному выходу.
29

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

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

Например:

15 Mod 4 = 3

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

x Mod 4

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

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

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

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

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

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

Спасибо! это был тот пример, который я искал!
ну, это имеет смысл ... Dilip Raj Baral

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