如何在ruby中实现django的密码验证,以便我可以将我的用户数据库从旧的django应用程序迁移到新的ruby应用程序? (Q& A风格,我试过的实际上是作为答案而详细说明)
答案 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时遇到了一些麻烦(不知道其他版本)所以我认为这仍然有帮助。