Можете ли вы выяснить схему хеширования пароля? - PullRequest
11 голосов
/ 07 июня 2010

У меня есть два пароля и два полученных хэша. Я не могу понять, как хэш получен из пароля. Я не знаю, используется ли соление. Я не знаю, хешируется ли пароль как целочисленное значение или как строка (возможно, Unicode).

Пароль: 6770 Хеш: c12114b91a3841c143bbeb121693e80b

Пароль: 9591 Хеш: 25238d578b6a61c2c54bfe55742984c1

Кажется, длина хеша указывает на MD5. У кого-нибудь есть идеи, что я могу попробовать?

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

Ответы [ 2 ]

28 голосов
/ 07 июня 2010

Поиск в этих хэш-значениях (!) Показывает, что 25238d578b6a61c2c54bfe55742984c1 является md2sum для "9591" ( источник ), и на этом сайте есть еще одна страница, подтверждающая то же для 6770, и ваш первое хеш-значение ( source2 ).

(Edit: я с тех пор гуглил некоторый исходный код md2 и перепроверил хэши.)

(Отредактировано еще раз, чтобы прокомментировать: Вам невероятно повезло, что этот API использует такую ​​ужасную схему хеширования без каких-либо засолок или префиксов! :-))

3 голосов
/ 07 июня 2010

Документация по API не говорит? Странно.

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

Однако на практике вы, вероятно, можете просто попробовать несколько распространенных алгоритмов шифрования и посмотреть, что они вам дают. Если кто-то совпадает в нескольких случайно выбранных случаях, это, вероятно, правильно. Злоумышленник может, например, переназначить несколько символов (поменяйте '2' на '3' или что-то еще - вы не заметите это с примерами паролей) перед применением основного алгоритма хеширования, но это вряд ли в реальных приложениях.

Кстати, пароль из четырех цифр примерно так же безопасен, как и отсутствие пароля вообще.

...