целочисленное представление радуги в таблице символов - PullRequest
0 голосов
/ 13 октября 2018

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

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

Выдержка:

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

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

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

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

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

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

...