加密数据库字段的好方法?

时间:2010-10-20 15:12:54

标签: python sql sql-server django encryption

我被要求加密数据库中的各种数据库字段

问题是这些字段在读取后需要解密。


我正在使用 Django SQL Server 2005

有什么好主意吗?

4 个答案:

答案 0 :(得分:8)

答案 1 :(得分:6)

我遇到了同样的问题,并创建了以下解决方案:http://djangosnippets.org/snippets/2489/

我碰巧使用M2Crypto作为密码引擎,但如果需要,可以将其换出。

正如TomTom所说,这样做只会提高攻击者的门槛,而不是无法进行恶意解密 - 除了访问您的数据库之外,他们现在还需要访问存储密钥派生函数的密码短语的任何位置。但是,通过以这种方式从其保护的数据中分割密钥,您至少现在可以选择进一步保护该密钥(例如,使用密钥管理服务器)以提高标准。纵深防御是一个很好的策略,但你还需要确定给定应用程序的过度杀伤力。

加密任何可能对搜索或排序有用的字段也是一个可怕的想法(我只使用此技巧来存储不支持正确的标记化OAuth连接的Web服务的OAuth凭据。)

答案 2 :(得分:5)

呀。告诉谁告诉你要变得真实。没有/没有意义。如果是关于存储的值 - 企业版2008可以存储加密的DB文件。

否则,如果你真的需要(有所有缺点)只需加密它们并将它们存储为字节字段。

答案 3 :(得分:1)

如果您要存储密码等内容,可以执行以下操作:

  1. 将用户密码存储为SHA256哈希值
  2. 获取用户密码
  3. 哈希吧
  4. 列表项
  5. 根据存储的密码进行检查

    您可以使用hashlib模块在​​Python中创建SHA-256哈希。

    希望这有帮助