там md5, дешифруют функцию в Python? [дубликат]

5
задан Community 23 May 2017 в 10:33
поделиться

7 ответов

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

Цитируя Википедию, ключевыми особенностями такого алгоритма хеширования являются:

невозможно найти сообщение с заданным хешем,

невозможно изменить сообщение без изменения его хэша,

невозможно найти два разных сообщения с одинаковым хешем.

Наиболее распространенные применения таких алгоритмов сегодня:

  • Хранение паролей
  • Проверка содержимого файлов.

Если вы хотите двустороннее шифрование данных, вам нужно посмотреть другие криптографические библиотеки для Python (как обычно, у Stackoverflow есть рекомендация ).

19
ответ дан 18 December 2019 в 05:23
поделиться

Я не знаю о Python, но хеш-функции необратимы. Прежде всего, обратите внимание, что хеш-функции обеспечивают вывод постоянной длины - это означает, что информация будет выброшена (вы можете хэшировать файл размером 3 МБ и все равно получить результат размером менее 1 КБ). Кроме того, хеш-функции созданы для того, что они необратимы , если вам нужно шифрование, используйте не хеширование, а шифрование - основное применение хеширования - это утечка информации из базы данных (которая содержала хеши), что пароли не были скомпрометированы (есть еще примеры, но это наиболее очевидный один)

2
ответ дан 18 December 2019 в 05:23
поделиться

В общем, ответы BlueRaja и Sean верны. MD5 (и другие хэш-функции) являются односторонними, вы не можете обратить процесс вспять.

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

0
ответ дан 18 December 2019 в 05:23
поделиться

Если вы хотите взломать хеш, например хеш пароля. Тогда вам понадобится очень большая таблица поиска. John the Ripper обычно используется для взлома паролей с помощью словаря, это очень хороший метод, особенно если это соленый хеш пароля.

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

Здесь - сценарий Python для выполнения атаки методом перебора md5 ().

3
ответ дан 18 December 2019 в 05:23
поделиться

Чтобы добавить к сказанному всеми остальными, MD5 - это односторонний хэш. Обычно используется хэширование двух входных значений, и если хэшированные значения совпадают, то входные должны быть одинаковыми. Переход от хэшированного значения MD5 к входному хэшу является бессмыслицей. Скорее всего, вам нужен симметричный алгоритм шифрования - смотрите двустороннее шифрование с ключом/алгоритм хэширования для хорошего обсуждения этого вопроса.

0
ответ дан 18 December 2019 в 05:23
поделиться

Хеши отображают набор данных в конечный (хотя и большой) набор числовых значений / строк.

Это отображение «многие-к-одному», так что декодирование хэша не только «сложно» в криптографическом смысле, но и концептуально невозможно в том смысле, что даже если бы вы могли, вы бы получили бесконечный набор возможных входных строк. .

0
ответ дан 18 December 2019 в 05:23
поделиться

Нельзя. В том-то и дело, что хэш - односторонний, это не то же самое, что шифрование.

14
ответ дан 18 December 2019 в 05:23
поделиться
Другие вопросы по тегам:

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