2013-10-23 43 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查找河豚算法得到相同的結果。任何人都可以解釋如何使用河豚得到相同的結果?

相關問題