Можете ли вы определить схему хэширования паролей?
У меня есть два пароля и два хэша. Я не могу понять, как хэш получается из пароля. Я не знаю, используется ли соление. Я не знаю, хеширован ли пароль как целочисленное значение или как строка (возможно, Unicode).
Пароль: 6770
Хеш: c12114b91a3841c143bbeb121693e80b
Пароль: 9591
Хеш: 25238d578b6a61c2c54bfe55742984c1
Длина хеша, как представляется, предполагает MD5. У кого-нибудь есть идеи, что я мог попробовать?
Примечание. Это не для взлома. Я пытаюсь получить доступ к сервису через API, а не его настольный клиент, и я не могу понять, как вычислить хэш пароля. В настоящее время вместо использования моего реального пароля я отправляю непосредственно хэш.
Ответы
Ответ 1
Включение этих хэш-значений (!) показывает, что 25238d578b6a61c2c54bfe55742984c1 является md2sum источника "9591" (), и этот сайт имеет другую страницу подтверждая то же самое для 6770 и вашего первого хеш-значения (source2).
(Edit: с тех пор я получил исходный код md2 и перекрестно проверил хэши.)
(Отредактировано снова, чтобы комментировать: вам невероятно повезло, что этот API использует такую страшную схему хэширования без каких-либо засолов или префиксов!:-))
Ответ 2
Документация API не указана? Странно.
В принципе, это невозможная проблема - любое количество различных алгоритмов хэширования может давать одинаковые результаты в любом заданном числе конкретных случаев, а затем давать другой результат при первом использовании одного.
На практике, однако, вы, вероятно, можете просто попробовать несколько общих алгоритмов хэш-шифрования и посмотреть, что они вам дают. Если вы встречаетесь в нескольких случайно выбранных случаях, это, вероятно, правильно. Злоумышленник может, например, переназначить несколько символов (своп "2" для "3" или что-то еще - вы не заметите это с помощью своих паролей к примеру) перед применением основного алгоритма хеширования, но это маловероятно в реальных приложениях.
BTW - пароль с четырьмя цифрами находится примерно так же безопасно, как и пароль.