2013-10-23 41 views
0

我有这个功能在PHP需要一种方法来模拟PHP crypt()函数在VBA

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

它已经存储的密码在DB。我将这个数据库转换为使用Access作为前端而不是PHP和HTML。我需要VBA/vbscript代码来转换输入的密码,如果密码相同,则匹配上述函数的输出。

我试过所有正常的散列算法,它们都不工作。我不确定crypt函数是如何工作的,但它似乎有某种种子值'$2a$07$twfAAA1954npfBBB1982oo'加上密码。那么它可能使用一些标准的散列算法。

有人可以给我代码,或者至少告诉我crypt函数如何使用该种子值,以便我可以在vba中重新创建crypt()函数?

我发现了crypt函数的源代码,但是我对PHP的知识还不够强,无法理解真正发生了什么。

+0

如果你可以改变php使用md5()来代替它,它可能会更容易匹配起来... – Brian

+0

我知道我希望我可以,但我不能 – JustinRoman

回答

0

关于原始功能:http://php.net/crypt 所以它使用你提到的字符串作为盐。该算法是:crypt_blowfish的

还有一些河豚实现在VB:

+0

是的挖完后我发现了更深。但我似乎无法得到使用吹鱼算法匹配的值。你能帮助理解这一点吗?密码是:Truck0409!盐是:$ 2a $ 07 $ twfAAA1954npfBBB1982oo和从crypt函数返回的存储密码是:$ 2a $ 07 $ twfAAA1954npfBBB1982oeksSlrRQpws2mkzTSloxQRt4QivN4wha。 – JustinRoman

+0

我从http://www.functions-online.com/crypt.html得到相同的结果,但不能使用河豚算法。 – JustinRoman

+0

我只知道php部分。而且我没有环境来测试vb端。 –

0

更深的挖掘后,我发现,墓穴是用河豚。

但我似乎无法得到值匹配使用吹鱼算法。你能帮助理解这一点吗?

密码是:Truck0409! 盐是:$ 2A $ $ 07 twfAAA1954npfBBB1982oo和crypt函数返回存储的密码是:$ 2A $ $ 07 twfAAA1954npfBBB1982oeksSlrRQpws2mkzTSloxQRt4QivN4wha如果您在密码和盐http://www.functions-online.com/crypt.html

你得到同样的结果输入

,但我不能让它在任何河豚加密器一样工作: http://webnet77.com/cgi-bin/helpers/blowfish.pl

所以我直到我可以使用河豚加密器我不想浪费我的时间在VBA查找河豚算法得到相同的结果。任何人都可以解释如何使用河豚得到相同的结果?

相关问题