我们将在db model res_partners中存储一些有关客户的敏感信息。
但是,我们不希望将此信息存储在简单的文本字段中。我们更喜欢 如果可能,对这些字段进行一些基本加密。我们不希望有人 有权访问数据库以访问这些字段。
我们有没有办法在openerp或postgres中完成这项工作?
谢谢你, Vishal Khialani
答案 0 :(得分:2)
没有“基本”加密这样的东西。 Rot13不会让你到任何地方。如果您的数据足够敏感以获得保护,那么您需要使用最先进的密码,例如Blowfish。我建议你仔细看看Bruce Schneier的书Applied Cryptography
实现此目的的简单(和不安全)方法是在写入之前加载模型的write
和read
方法以及在读取之后加密。
棘手的部分是存储加密密钥。您可以将其存储在运行OpenERP服务器的计算机上的文件中(假设数据库在另一台服务器上运行)。这仍然非常弱,因为密钥将在服务器上清晰可用,但如果您不信任您的数据库服务器管理员,但仍然可以信任您的openerp服务器管理员,那么它仍然有用。将数据库服务器放在安全且受信任的位置,并且如果需要加密数据库的脱机副本(例如备份),仍然更容易。
如果您想要更高的安全性,则必须使用用户提供的密钥将加密的数据发送到客户端应用程序,然后在那里进行解密。我不太了解这一部分的开篇,不知道它是否容易实现。