我是铁路新手。我想问一下,是否可以插入加密密码(使用默认加密加密)来设计模型?
例如:
$2a$10$0.xEu5LvDbnmGVIqgIab8ej5o2b3eKa8KLevsg5bxIX0SHSOl5gye User.csv id,名字,encrypted_password 1,老兄,encrypted_password
我想读取这个csv文件,然后将数据插入到用户模型中。但我意识到,您不能在用户模型的encrypted_password上通常插入已经加密的密码。我正在考虑解密密码,但他们说这对系统的安全是有害的。
更新:它现在可以插入加密密码,但插入的密码与csv上的密码不同,因为在将密码插入数据库之前,该设备会自动加密密码。在将密码插入数据库之前,是否有一种设计模型来检测密码是否已经加密?
发布于 2016-07-21 11:28:04
是的,您可以直接设置encrypted_password值:
u = User.find(1)
u.update_attribute(:encrypted_password, "$2a$10$0.xEu5LvDbnmGVIqgIab8ej5o2b3eKa8KLevsg5bxIX0SHSOl5gye")但是你应该确保你没有设置‘密码’,如果你这样做不会工作,因为它会再次加密,所以
u = User.new
u.password = 'foo'
u.password_confirmation = 'foo'
u.encrypted_password = "$2a$10$0.xEu5LvDbnmGVIqgIab8ej5o2b3eKa8KLevsg5bxIX0SHSOl5gye" # this line will be ignored
u.save
u = User.new
u.encrypted_password = "$2a$10$0.xEu5LvDbnmGVIqgIab8ej5o2b3eKa8KLevsg5bxIX0SHSOl5gye" # this line will now work
u.savehttps://stackoverflow.com/questions/38496774
复制相似问题