我正在考虑在Rails应用中使用attr_encrypted gem来进行字段级加密。我如何生成一个加密密钥用于这个宝石?如何生成与attr_encrypted一起使用的加密密钥
更新:
为Encryptor的文档,这是attr_encrypted使用的底层加密,规定如下(根据使用说明|基本):
secret_key = Digest::SHA256.hexdigest('a secret key')
encrypted_value = Encryptor.encrypt('some string to encrypt', :key => secret_key)
我猜想,a secret key
可以是任意随机字符串,并且调用hexdigest
将根据它计算适当的固定长度的字符串。这是推荐的方式吗?
我试着回答,但有一个问题:你想保护明文数据的人是谁(或者什么样的场景)? –
数据库中的某些字段需要在休息时加密,主要用于非现场备份(场外备份系统无法访问加密密钥)。 –
在这种情况下,我猜想非现场系统可以访问数据,但不能访问配置或源代码?我可能仍然会错误地配置存储至少部分密钥,并使用gem的能力来调用方法来获取正确的密钥,以此作为提供该密钥的方式。但是,如果源代码的安全性与备份数据无关,每个字段的加密密钥的硬编码也是可行的。 –