我要加密数据库,因为正在存储机密数据.我使用
mongodb与mongoid.这种数据库有可能吗?你可以推荐什么替代品,如果不是呢?
附:主要目的是:如果有人破解服务器并窃取数据库,这将是不可加密的.
更新:感谢nickh,我发现非常多的soultions for ActiveRecord,但没有Mongoid和其他蒙古车队.对于Mongo和Mongoid来说,这是一个很好的选择!
解决方法
我已经和Mongo和Mongoid一起工作了.它只需要几个调整.
确保在模型中明确创建了由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