Несмотря на то, что ответили другими пользователями, CRC32 не является криптографической хэш-функцией; он предназначен для проверки целостности (контрольные суммы данных). Криптографические хэш-функции часто описываются как «односторонние хеш-функции», CRC32 не имеет «односторонней» части.
При этом вы должны учитывать следующее: поскольку множество всех возможных имен файлов с именами 25 или более символов больше 2^32, некоторые имена файлов должны иметь одно и то же значение хэш-функции. Следовательно, может быть, что для некоторых значений CRC32 вы получите - будет несколько возможных источников (имена файлов). Вам понадобится способ определить «настоящий» источник (я предполагаю, что человеческий выбор будет лучшим выбором, поскольку наш мозг - отличное устройство распознавания образов, но оно действительно зависит от вашего сценария).
Несколько методов могут быть использованы для частичного достижения того, о чем вы просите. Brute-force является одним из них (хотя, с именами файлов длиной 25 символов, грубая сила может занять некоторое время). Измененная словарная атака - еще один вариант. Другие варианты основаны на анализе алгоритма CRC32 и потребуют, чтобы вы погрузились в детали реализации алгоритма (иначе вам будет трудно понять, что вы реализуете). Например, см. Это article, или это artice.
EDIT: определения Брюс Шнайер (автор Applied Cryptography, между прочим):
Односторонние функции относительно легко вычислить, но значительно труднее переломить. .... В этом контексте «жесткий» определяется как нечто вроде: Пройдет миллионы лет до . Вычислите x из f (x), даже если все компьютеры в мирах были назначены .
Хэша-функция является функцией, математической или иным способом, который принимает переменной строку ввода длины и (называется прообразом) и преобразует его к фиксированной длине (обычно меньше) выходной строки (так называемая хэш-значение).
Безопасность односторонней хэш-функции Функция - это односторонность.
downvoters, пожалуйста, дайте свои аргументы перед нажатием. – Andrey
Не уменьшал вас, но заметил: CRC - это не односторонняя хеш-функция, это просто небезопасная хеш-функция. –
Это еще один способ. –