SecureRandom.hex() 与 SecureRandom.random_bytes() 用于在 Rails 中



attr_encrypted的文档说我必须将key = SecureRandom.random_bytes(32)的结果存储在模型上。我认为将此密钥存储为 ENV 变量会更安全。我也习惯于为我的 ENV 变量运行rake secretrake secret依赖于SecureRandom.hex().

我想知道两件事:

  1. 我假设加密密钥应该存储为 ENV 变量是否正确?
  2. 两种 SecureRandom 方法中的任何一种之间的密钥加密强度是否有任何差异?hex()random_bytes()

SecureRandom#hex在这里定义为:

def hex(n=nil)
random_bytes(n).unpack("H*")[0]
end

所以它们生成的数据完全相同,只是格式不同。

至于加密密钥,这取决于您以及您托管应用程序的方式。如果它位于您控制的服务器上,则未提交的配置文件很好(尽管环境变量方法显然仍然有效(。如果您在例如 Heroku 上托管,环境变量是要走的路。

相关内容

  • 没有找到相关文章

最新更新