crc32 расшифровывает короткую строку - PullRequest
4 голосов
/ 08 апреля 2010

Я получаю списки хэшей crc32, которые содержат имена файлов, а не их содержимое.

Мне нужно иметь возможность расшифровывать строки, которые являются хэшированными именами, такими как "planplan_2010.txt "

длиной не более 25 символов.

это возможно?

Ответы [ 3 ]

8 голосов
/ 08 апреля 2010

это односторонняя хеш-функция. Это не может быть расшифровано.

5 голосов
/ 08 апреля 2010

Несмотря на ответы других пользователей, CRC32 не является криптографической хэш-функцией ; он предназначен для проверки целостности (контрольных сумм данных). Криптографические хеш-функции часто описываются как «односторонние хеш-функции», в CRC32 отсутствует «односторонняя» часть.

При этом вам следует учитывать следующее: поскольку набор всех возможных имен файлов, состоящих из 25 символов или менее, превышает 2 ^ 32, некоторые имена файлов должны иметь одинаковое значение хеш-функции. Следовательно, возможно, что для некоторых значений CRC32, которые вы получите, будет несколько возможных источников (имен файлов). Вам понадобится способ определить «реальный» источник (я полагаю, что человеческое решение будет лучшим выбором, поскольку наш мозг - это отличное устройство для распознавания образов, но оно действительно зависит от вашего сценария).

Несколько методов могут быть использованы для частичного достижения того, что вы просите. Brute-force является одним из них (хотя при использовании имен файлов длиной 25 символов, перебор может занять некоторое время). Модифицированная словарная атака - это еще один вариант. Другие варианты основаны на анализе алгоритма CRC32 и потребуют, чтобы вы погрузились в детали реализации алгоритма (иначе вам будет трудно понять, что вы реализуете). Например, см. Эту статью или artice .

РЕДАКТИРОВАТЬ: определения Брюса Шнайера (среди прочего, автор Прикладной криптографии):

Односторонние функции относительно просты вычислить, но значительно сложнее повернуть вспять … В данном контексте, «жесткий» определяется как что-то вроде: Это займет миллионы лет, чтобы вычислить x из f (x), даже если все компьютеры в мирах были назначены к проблеме.

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

Безопасность одностороннего хэша функция - это односторонность.

2 голосов
/ 08 апреля 2010

A хеш-функция , подобно CRC32, вычисляет простое значение с заданным (переменным) вводом. Расчет не является обратимым, то есть вы не можете надежно получить исходное значение, учитывая только хэш.

...