Обратный (или перебор) алгоритм FNV1-64, зная некоторую информацию о закодированной строке. ⇐ Python
-
Anonymous
Обратный (или перебор) алгоритм FNV1-64, зная некоторую информацию о закодированной строке.
У меня есть алгоритм FNV1-64 как функция Python
def fnv1_64(data:bytes) -> шестнадцатеричный: hval_init = 0xcbf29ce484222325 fnv_prime = 0x100000001b3 fnv_size = 2**64 утверждать isinstance(данные, байты) hval = hval_init для байта в данных: hval = (hval * fnv_prime) % fnv_size hval = hval ^ байт вернуть шестнадцатеричный(hval)[2:] И мне интересно, можно ли повернуть вспять или, точнее, перебрать это. У меня есть список хэшей, и я знаю 12 первых символов закодированной входной строки и 4 последних. Я также знаю, что строка состоит только из строчных букв, цифр, а также «-» и «_» (39 всего возможных символов), а средняя длина, исключая начало и конец, равна 42. Есть ли способ повернуть это вспять или это слишком много возможностей?
У меня есть алгоритм FNV1-64 как функция Python
def fnv1_64(data:bytes) -> шестнадцатеричный: hval_init = 0xcbf29ce484222325 fnv_prime = 0x100000001b3 fnv_size = 2**64 утверждать isinstance(данные, байты) hval = hval_init для байта в данных: hval = (hval * fnv_prime) % fnv_size hval = hval ^ байт вернуть шестнадцатеричный(hval)[2:] И мне интересно, можно ли повернуть вспять или, точнее, перебрать это. У меня есть список хэшей, и я знаю 12 первых символов закодированной входной строки и 4 последних. Я также знаю, что строка состоит только из строчных букв, цифр, а также «-» и «_» (39 всего возможных символов), а средняя длина, исключая начало и конец, равна 42. Есть ли способ повернуть это вспять или это слишком много возможностей?
Мобильная версия