我被要求加密数据库中的各种数据库字段。
问题是这些字段在读取后需要解密。
我正在使用 Django 和 SQL Server 2005 。
有什么好主意吗?
答案 0 :(得分:8)
答案 1 :(得分:6)
我遇到了同样的问题,并创建了以下解决方案:http://djangosnippets.org/snippets/2489/
我碰巧使用M2Crypto作为密码引擎,但如果需要,可以将其换出。
正如TomTom所说,这样做只会提高攻击者的门槛,而不是无法进行恶意解密 - 除了访问您的数据库之外,他们现在还需要访问存储密钥派生函数的密码短语的任何位置。但是,通过以这种方式从其保护的数据中分割密钥,您至少现在可以选择进一步保护该密钥(例如,使用密钥管理服务器)以提高标准。纵深防御是一个很好的策略,但你还需要确定给定应用程序的过度杀伤力。
加密任何可能对搜索或排序有用的字段也是一个可怕的想法(我只使用此技巧来存储不支持正确的标记化OAuth连接的Web服务的OAuth凭据。)
答案 2 :(得分:5)
呀。告诉谁告诉你要变得真实。没有/没有意义。如果是关于存储的值 - 企业版2008可以存储加密的DB文件。
否则,如果你真的需要(有所有缺点)只需加密它们并将它们存储为字节字段。
答案 3 :(得分:1)
如果您要存储密码等内容,可以执行以下操作:
根据存储的密码进行检查
您可以使用hashlib
模块在Python中创建SHA-256哈希。
希望这有帮助