ruby-on-rails - rails : storing encrypted data in database

标签 ruby-on-rails mongodb encryption activerecord database

我想加密数据库,因为正在存储 secret 数据。我将 mongodb 与 mongoid 一起使用。这种数据库可能吗?如果不是,您可以推荐哪些替代方案?

附:主要目的是:如果有人入侵服务器并窃取数据库,它将无法加密。

更新:感谢 nickh ,我发现很多soultions for ActiveRecord ,但对于 Mongoid 和其他 Mongo 客户来说没有任何意义。很高兴能为 Mongo 和 Mongoid 找到一些灵魂!

最佳答案

我已经使用 Mongo 和 Mongoid 获得了 attr_encrypted。只需稍作调整。

确保所有由 attr_encrypted 自动创建的 encrypted_ 字段都在模型中显式创建。例如,如果您有:

    attr_encrypted :email, :key => 'blah blah blah', :encode => true

你需要:

    field :email, :type => String
    field :encrypted_email, :type => String

还要注意你需要告诉它对加密字符串进行编码,否则 Mongo 会大声提示。

最后,如果您要加密哈希,请执行以下操作:

    field :raw_auth_hash, :type => Hash
    field :encrypted_raw_auth_hash, :type => String

    attr_encrypted :raw_auth_hash, :key => 'blah', :marshal => true, :encode => true

关于ruby-on-rails - rails : storing encrypted data in database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4343996/

相关文章:

ruby-on-rails - Rails 辅助模块中的实例变量存储在哪里?

ruby-on-rails - 困惑 ror Mechanize

arrays - Mongoose 查询,查找 B.array 中与 A.array 中匹配的所有 B 类型项目

c - 使用指针加密字符串的函数

java - 如何重写 HttpServletRequest 上的 POST 请求正文

object - java中RSA加密的替代方案

ruby-on-rails - Ruby on Rails:url_for:back导致back_url出现NoMethodError

mysql - ActiveRecord 深层嵌套查询和计算列

javascript - Try/Catch 捕获 promise 拒绝...有什么办法解决这个问题吗?

python - 使用变量调用 mongo 集合