我正在使用attr_encrypted gem,并且还在我的环境中安装了设计。
我得到了一个由设计处理的用户模型,数据库列是: encrypted_password
用户可以保存客户端,我想用用户密码加密客户端名称和年龄。
我的client.rb文件如下所示: 此处数据已成功加密。
class Client < ActiveRecord::Base
attr_accessor :name :age
attr_encrypted :name, :age, key: "test1234"
但我想用 Users.password 加密数据。像这样:
class Client < ActiveRecord::Base
attr_accessor :name :age
attr_encrypted :name, :age, key: current_user.encrypted_password
current_user 是 Devise 辅助方法,但由于这是来自会话,我无法在模型中访问它。基本上我想用用户密码加密所有客户端的东西。 但是,如果我使用 encrypted_password 执行此操作,那么我已经获得了解密整个字段的密码。我想为我的用户提供安全性,但我不想知道或无法查看他们的数据。那么唯一的方法是使用预先散列的设计用户密码加密所有数据?
编辑:
user.encrypted_password 已经被散列并且每当我访问数据库时 - 我可以使用它来解密所有数据吗?
所以我应该请求用户密码->像设计一样对其进行哈希处理-将其与 users.encrypted_password 进行比较?
我在某处有逻辑错误吗?
你会如何解决这个问题?