2013-02-19 71 views
1

我希望有人可以闡明我可能會使用哪個庫,如果有任何可用於將已使用BCrypt $ 2a的基於PHP的應用程序轉換爲基於.Net的應用程序,當前BCrypt我使用的C#庫我剛剛意識到使用了$ 2y,所以我將無法在不引起大量密碼重置的情況下毫無疑問地遷移用戶。是否有可用的C#端口$ 2a,或者反過來PHP $ 2y的實現,我可能會將它複製到現有系統中並重新哈希密碼。理想情況下,我想在PHP版本中進行零編碼,並能夠遷移到.Net平臺。PHP到C#使用BCrypt轉換

謝謝。

回答

2

至於$ 2a $,這取決於您的PHP bcrypt版本的年齡。

2011年之前,您會希望將$ 2a $更改爲$ 2x $。 2011年後,$ 2a $和$ 2y $是(除了0xff序列,UTF-8密碼無法生成)等效。這三者對於ASCII密碼都是等效的。

我的圖書館CryptSharp可以在$ 2a $(2011年後,$ 2y $等值),$ 2x $和$ 2y $ form中進行加密。

+0

Zer,你可以粘貼一個代碼示例。我試圖用你的庫爲$ 1 $和$ 2y $ 10創建一個散列,並且它一直給我一個salt值的參數例外。 我有一個長度爲8的鹽,例如12345678.爲此,我在前面添加「$ 1 $」並追加「$」,使其總共12個字符(與PHP crypt相同的格式) 因此最終的字符串是「$ 1 $ 12345678 $」,並且沒有運氣。拋出異常。鹽應該是什麼格式?同樣的2美元10美元。我需要爲此複製PHP crypt函數。 – 2014-12-22 19:09:36