целочисленное представление радуги в таблице символов

Я читал документацию по RainbowCrack и более раннему исходному коду и не могу найти, где хеш разработчика (ов) уменьшен до 64-битного целого числа, которое может содержать простые тексты UINT64_MAX.

Doc: https://project-rainbowcrack.com/file_format.htm

Выдержка:

И начальная, и конечная точки представляют собой 64-разрядное целое число без знака в
little endian, представляющий собой открытый текст.

В этом примере кодировка — это «abcdefghijklmnopqrstuvwxyz0123456789» с диапазоном длины открытого текста от 1 до 7. Так что 0 означает открытый текст
«a», 1 обозначает открытый текст «b», 35 обозначает открытый текст «9», 36
обозначает открытый текст «аа», а 80603140211 обозначает открытый текст
«9999999».

Где-то должно быть описание того, как генерировать все возможные открытые тексты (размер 80 603 140 211 в приведенном выше примере, 36 возможных символов, длины от 1 до 7) или, что более вероятно, подмножество из функции сокращения. Учитывая хеш, возможно SHA1 с 160 битами вывода, он сводится к некоторому целому числу, берет 64 бита, а затем генерирует открытый текст в кодировке [a-z0-9] длиной от 1 до 7.

Я полагаю, что я хочу спросить: если процесс является детерминированным и должен производить такие же сокращения хеша от начальной точки, как бы получилось хорошее распределение от 0 до длины N открытого текста без введения случайности? Попробуйте немного подгонять числа от сокращения, чтобы это можно было включить в набор символов, выбрать символ c (повторить N раз) для длины открытого текста N?

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

Так что, кто бы ни проголосовал за то, что он показал мало или вообще ничего не исследовал, вы идете. Возможно, вы просто посчитали меня скучным, а не тем, кто на самом деле не пытается провести какое-либо исследование или добиться прогресса, прежде чем задавать вопрос.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …