我们正在使用Gem:https://github.com/attr-encrypted/attr_encrypted作为加密Rails应用程序数据库中某些字段的一种方式。
因为我们不希望不知道密钥的开发人员(甚至是开发人员)也无法访问数据,因此我们希望使用Gem进行适当的非对称加密,从而密钥必须由用户自己承担,并要求他们密码以解密某些字段。
例如:
attr_encrypted :example_field, key: proc { |user| user.key }
但是我有两个问题:
1。)我们如何确保必须在用户登录时解密密钥本身?就目前的实现而言,这意味着我们只为每个用户创建了一个密钥,并将其移至数据库中,而不是环境变量中。
2。)根据非对称加密的规则,我们将使用公共密钥对数据进行加密,然后使用私有(用户密钥)对数据进行解密...但还无法了解该Gem如何将支持此操作,因为似乎只关心属性的单个键,而不是适当的公共/私有键。