【发布时间】:2014-11-21 16:22:51
【问题描述】:
我正在使用the attr_encrypted gem,并且我还在我的环境中安装了设计。
我得到了一个由 devise 处理的用户模型,数据库列是: 加密密码
用户可以保存客户,我想用用户密码加密客户的姓名和年龄。
我的 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 进行比较?
我在某处有逻辑错误吗?
你会怎么解决这个问题?
【问题讨论】:
标签: ruby-on-rails activerecord devise attr-encrypted