2014-09-22 27 views
2

我在數據存儲上使用SecureSocial的包securesocial.utils.SecureSocialPasswordHasher中的方法SecureSocialPasswordHasher.passwordHash進行了哈希處理,並且必須通過Python對其進行驗證。SecureSocial for SecureSocialPasswordHasher默認使用什麼加密?

因此,使用SecureSocial(或整個Play框架)是不可能的。問題是:調用該方法時用於哈希的是什麼?從文檔看來,它似乎是Bcrypt,但它不夠清楚,我不能確定。

--------- ---------編輯

有人告訴我上,確實它使用Bcrypt與工作因素10默認SecureSocial論壇。但它並不反映我在數據存儲上看到的內容。

有2列,一個是鹽,另一個是散列密碼。他們都沒有Bcrypt標題(如$2a$10$)。此外,鹽的大小隻有11個字符長,哈希密碼長度只有22個字符(並且沒有鹽在字符串中的跡象)。

+0

工作因素10輪和10輪不是一回事。輪次數是工作因子中的指數。 – CodesInChaos 2014-09-23 11:47:34

+0

謝謝,我的壞。在我看來,這是對的,但寫了錯誤的名詞。現在更正。 – ivanvlopes 2014-09-23 14:11:56

回答

1

找到了SecureSocial上的散列密碼的默認值確實是Bcrypt

它的哈希方法的默認實現是:

def hash(plainPassword: String): PasswordInfo = { 
     PasswordInfo(id, BCrypt.hashpw(plainPassword, BCrypt.gensalt(logRounds))) 
    } 

這適用於SecureSocial最新版本。

在我的具體問題上,主要問題是我沒有通知我所處理的代碼是使用舊版本的SecureSocial,並且has方法被覆蓋。