2012-09-19 15 views
0

前段時間我想玩Google Appengine,我做了一個java網站。現在我有必要擺脫它,我想遷移到Rails,網站本身不是問題,但在Java版本中,我使用BasicPasswordEncryptor來加密我的密碼。Java網站到Rails,再現密碼加密

現在我不知道如何在Ruby上得到相同的哈希值。該文件說,這是md5加密,但哈希看起來像

4 + RZ + 7Vn/ddlNv4rdJeeg .....

所有哈希值是32個字符長,但它確實看起來並不像一個MD5哈希。我也不明白鹽儲存在哪裏。

任何人有任何信息可以幫助搞清楚這一點?

由於

+0

你想學習如何在Rails上做到這一點,或者你想要將你的數據移植到rails?這兩個有點不同,所以請澄清(它看起來像一個學習項目,所以它似乎傾向於前者)。 –

+0

我通常喜歡學習一些東西,但是這已經超出了學習的層次,因此最重要的是將數據移植到其中。我希望我解釋得很好,謝謝。 – Duiker101

+0

你說得對。我認爲所選解決方案應該涵蓋你。我的評論的理由是,通常在Rails世界中,使用類似設計的東西,所以如果你想維護功能(但不是當前的基礎),你應該調查。 –

回答

1

BasicPasswordEncryptor不以下

一個)將其轉換密碼字節數組 B)它創建一個隨機8字節鹽 C)它通過1000輸入通過與鹽 d MD5倍)它獲得MD5結果 - 16字節 e)它增加了這個結果鹽 - 8字節 f)它base64編碼24字節(MD5和鹽),據我所知最終將是32字節。

你可以看一下這裏的源代碼: http://grepcode.com/file/repo1.maven.org/maven2/org.jasypt/jasypt/1.5/org/jasypt/util/password/BasicPasswordEncryptor.java http://grepcode.com/file/repo1.maven.org/maven2/org.jasypt/jasypt/1.5/org/jasypt/digest/StandardByteDigester。 java#StandardByteDigester.digest%28byte%5B%5D%29

因此,您需要在Rails中完成相同的工作(以生成新的消化密碼或檢查舊的消解密碼)。

無法從摘要中恢復原始密碼(這是摘要的全部要點)。

+0

謝謝,這可能是我最終會做的。 – Duiker101