алгоритм хеширования
У меня сейчас стоит задача реверс-инжиниринга клиент-серверного приложения. Во время написания программы я столкнулся с проблемой: клиент отсылает на сервер захешированный пароль, на основании которого сервер определяет, правильный пароль или нет. Я уже мучаюсь четвёртый день, никак не могу разобрать, какой алгоритм хеширования используется. Помогите пожалуста.
функции передаётся два параметра - пароль и ключ.
первая строка - пароль, вторая - ключ, третяя - соответственно хеш
1
0
5E55DB178E5ED4DF1878178A75C2759803AB11F4
1
1
857BB87073F49B8310794030CABC88BDF401999B
0
1
DF83F9D16C84D2FA349C411D9EF3BBE3C30D3583
0
0
B6CA9BB549B1CC2361973E46C6DC2D58125F9153
1
"пустой"
B5AE9F7697DBBBBBF8B7ADF5AEB3DDF8944D4F0B
0
"пустой"
BDCC5C69F240004164E9A219A892190DDF8BCB8C
внешний вид хеша напоминает sha1, так как 40 символов.. Я считал хеш в sha1 до 30000 и значений для пустого ключа не нашел..
Буду очень благодарен за помощь
внешний вид хеша напоминает sha1, так как 40 символов.. Я считал хеш в sha1 до 30000 и значений для пустого ключа не нашел..
http://subscribe.ru/archive/comp.soft.prog.dixi/200612/18051410.html.
и http://www.microsoft.com/rus/msdn/magazine/archive/2003-11/LockingAccessToSecretDataFull.asp - это про популярные хэши. Так просто подобрать точный алгоритм сложновато оказаться может. Точней про приложение сказать можешь, описание его дать?
Вот может это то что тебя нужно - http://cryptographic.ru/ или прямо -
http://www.aspencrypt.com/
Я пытаюсь написать свой клиент, но столкнулся с проблемой хеширования паролей, которые отсылаются на сервер при авторизации.
Я про такую игру ничего не знаю, и мне эта информация ничем не поможет. Единственно, что есть пара вопросов по архитектуре:
1 - ты пишешь клиента, его модуль хэширует пароль и отсылает на сервак. НО - Раз ты пишешь клиента - то ты сам можешь выбирать алгоритм хэширования, из тех что поддерживаются расшифровщиком сервера. Как я понял - ты этого не знаешь, и пытаешься определить экспериментально. Но обычно это информация не является закрытой (потому что знание злоумышленником алгоритма хэширования (корректного построенного!) не дает ему никаких преимуществ) и ее можно взять в доках сервера. В крайнем случае - раз ты пишешь свой клиент, то можно запросить алгоритм у разработчика сервера, если он не счел нужным его опубликовать.
2 - еще лучше, если есть возможность написать свой плагин (или взять готовый) для сервера, тогда ты будешь свободен в выборе алгоритма.
P.S. Ссылки то помогли? а то может, я только замусорил ими..
Сейчас пытаюсь связаться с разработчиками сервера - надеюсь, что алгоритм не окажется военной тайной).
По поводу попытки подбора алгоритма - я как прикнул, что очень легко реализовать взятие того же sha1 не сразу, а из предварительно обработанного ключа... скажем в md5.. Пришел к выводу что надо либо тормошить разработчиков либо вообще бросать эту идею)
По поводу ссылок - было что почитать) но своего случая не нашел(
По поводу ссылок - было что почитать) но своего случая не нашел(
Думаю, правильный вывод. По идее, разрабы серверы должны быть заинтересованы в написании клиентов к нему, проблем не должно быть. Удачи:) А насчет ссылок - посмотри прилепленную тему в разделе Компьютерная Безопасность.