Можете ли вы определить схему хэширования паролей?

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

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

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

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

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

Ответ 1

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

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

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

Ответ 2

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

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

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

BTW - пароль с четырьмя цифрами находится примерно так же безопасно, как и пароль.