如何在ruby中复制django的密码验证?

时间:2014-03-19 20:47:28

标签: python ruby-on-rails ruby django pbkdf2

如何在ruby中实现django的密码验证,以便我可以将我的用户数据库从旧的django应用程序迁移到新的ruby应用程序? (Q& A风格,我试过的实际上是作为答案而详细说明)

1 个答案:

答案 0 :(得分:1)

django应用程序(至少是我必须处理的应用程序)使用pbkdf2密码散列。

详细解释in wikipedia,我刚刚发布了一个实现它的gem,以便可以直接使用验证方法:

require 'pbkdf2_password_hasher'
# Some hash from django 
hsh = 'pbkdf2_sha256$12000$PEnXGf9dviXF$2soDhu1WB8NSbFDm0w6NEe6OvslVXtiyf4VMiiy9rH0='

#check with right password:
Pbkdf2PasswordHasher::check_password('bite',hsh) #=> true

#check with wrong password:
Pbkdf2PasswordHasher::check_password('bitten',hsh) #=> false

另一个gem pbkdf2-ruby也存在,但是我在使用ruby 2.1.1时遇到了一些麻烦(不知道其他版本)所以我认为这仍然有帮助。