我已经陷入了死胡同,而ActiveMassl的SecurePassword模型只执行bcrypt。 (我需要使用不同但同样安全的哈希来存储密码,以便导出和使用Dovecot IMAP身份验证的哈希密码。)
对于每个人来说,这可能是一个有用的功能,所以我最终会把它变成一个补丁。但是现在,我想修补SecurePassword模块。但是,我不确定如何以这样的方式解决这个问题,以确保在将问题包括在任何其他地方之前对其进行修补。
感谢您的提示!
答案 0 :(得分:1)
最简单的入门方式,根据我的经验(至少使用Rails 3.2,自上次使用Rails以来的早期版本不能说是在2.x天内)就是将代码保存到文件中例如secure_password.rb
下的config/initializers
。
在config/initializers/secure_password.rb
,您几乎可以逃脱任何事情,但在您的情况下,您可能想要去:
module ActiveModel
module SecurePassword
module InstanceMethodsOnActivation
def authenticate(unencrypted_password)
# Replace calls to BCrypt here
end
def password=(unencrypted_password)
# and here
end
end
end
end
有关Rails初始化和配置的更多信息,请参阅http://guides.rubyonrails.org/configuring.html。
(未经测试,但我已经像这样修补ActiveRecord::Timestamp
,这一切都正常。)