2014-01-24 81 views
3

我正在使用Laravel註冊用戶。它使用bcrypt像這樣:python和php bcrypt

$2y$10$kb9T4WXdz5aKLSZX1OkpMOx.3ogUn9QX8GRZ93rd99i7VLKmeoXXX 

我目前正在另一個腳本,它將從使用python另一個源進行身份驗證的用戶。我安裝了py-bcrypt並嘗試過。格式如下:

$2a$10$Vj0b0GZegbpXIIpa/lvi9OjkAFJ5zNzziVRW7yN9ssDKVQDX47XXX 

但在python上,我無法驗證用戶,因爲invalid salt

我注意到Laravel bcrypt使用$2y而python使用$2a。我如何解決這個問題?

筆記:

I used 10 rounds for both crypts. 

回答

3

我剛剛發現的2a2y是除名稱(前綴)非常相似。

更換2y的laravel散列,到2a仍然保持散列的完整性,即使您替換身份也應該正常工作並匹配密碼。

在我的情況(問題)解決方案是使用str.replace('$2y$', '$2a$'),它都運行良好。 現在,Py-bcrypt接受散列,沒有錯誤invalid salt

祝你好運傢伙。