Нужен способ эмуляции функции PHP crypt () в vba

У меня есть эта функция в PHP

public function hashPassword($password) {
    return crypt($password, '$2a$07$twfAAA1954npfBBB1982oo');
}

Он сохранил пароли в БД. и я конвертирую эту БД, чтобы использовать Access в качестве интерфейса вместо PHP и HTML. Мне нужен код VBA / vbscript, который преобразует введенный пароль, и, если это тот же пароль, совпадение с выводом вышеуказанной функции.

Я перепробовал все нормальные алгоритмы хеширования, и ни один из них не работает. Я не уверен, как работает функция crypt, но похоже, что у нее есть какое-то начальное значение, равное '$2a$07$twfAAA1954npfBBB1982oo' плюс пароль. Тогда он, вероятно, использует какой-нибудь стандартный алгоритм хеширования.

Может ли кто-нибудь дать мне код или, по крайней мере, сказать мне, как функция crypt использует это начальное значение, чтобы я мог воссоздать функцию crypt() в vba?

Я нашел исходный код функции crypt, но я недостаточно хорошо разбираюсь в PHP, чтобы понять, что на самом деле происходит.


person JustinRoman    schedule 23.10.2013    source источник
comment
если вы можете изменить php для использования вместо этого md5 (), может быть проще сопоставить их ...   -  person Brian    schedule 23.10.2013
comment
Я знаю, что хотел бы, но не могу   -  person JustinRoman    schedule 23.10.2013


Ответы (1)


Об исходной функции: http://php.net/crypt Таким образом, он использует указанную вами строку как соль. А алгоритм такой: CRYPT_BLOWFISH

И в VB есть несколько реализаций blowfish:

person Lajos Veres    schedule 23.10.2013
comment
да, покопавшись глубже, я понял это. Но, похоже, я не могу добиться совпадения значений с использованием алгоритмов ударной рыбы. Вы можете помочь разобраться в этом. пароль: Truck0409! соль: $ 2a $ 07 $ twfAAA1954npfBBB1982oo, а сохраненный пароль, возвращаемый функцией crypt: $ 2a $ 07 $ twfAAA1954npfBBB1982oeksSlrRQpws2mkzTSloxQRt4QivN4wha. - person JustinRoman; 23.10.2013
comment
я получаю тот же результат от functions-online.com/crypt.html, но не могу получить он использует только алгоритм blowfish. - person JustinRoman; 23.10.2013
comment
Знаю только часть php. И у меня нет среды для тестирования стороны vb. - person Lajos Veres; 24.10.2013