2012-10-28 38 views
2

我有用devise在rails中創建的系統。我需要將它的身份驗證邏輯重寫爲java。問題是,我不知道rails是如何加密生成的密碼的。我需要這些知識在java中創建類似的方法,以便對已經在數據庫中存儲的加密密碼進行身份驗證。從設計密碼遷移到java

Thx尋求幫助。

+1

你應該看看設計源代碼。它有很好的評論,所以不難看出發生了什麼。你的起點可能是'path/to/devise/lib/devise/strategies/authenticatable.rb'。 – cdesrosiers

+0

我找到了類,但它看起來像其他庫的包裝。我正在尋找來自瀏覽器(請求)的密碼並創建encryptedPassword值時的行。 – Mateusz

+0

在devise的代碼中挖掘,它看起來像devise/encryptors/sha512.rb是魔術發生的文件..嗯? – Mateusz

回答

3

diging的幾個小時後,我發現,這是足夠使用以下行:

BCrypt.checkpw(plainTextPassword, encryptedPassword) 

你並不需要了解哪些數據庫的一部分存儲的字符串是鹽,延綿等我仍不很牛逼充分了解什麼是串的片段:$2a$10$IAB6DfjYD4mbHiGWHB6YAOJqSwie1kLJNTl/bKQasb.ZJ.hj8VdTq這是設計的123456密碼存儲的版本;)

This post幫助我明白我需要做的。

+1

有沒有類似Ruby的Devise,但在Java中? – Green