【问题标题】:Python encryption with a master key使用主密钥的 Python 加密
【发布时间】:2014-08-29 04:24:21
【问题描述】:

我需要将敏感数据放入我们组织中的每个人都可以看到的数据库中 我希望加密数据,然后将其放入文本字​​段 可以通过 GUI 访问数据,该 GUI 将要求用户输入用于加密/解密数据的密码 我不相信用户会记住他们的密码,所以我想要一个可以解密所有数据的主密钥

我能看到的唯一方法是使用对称密钥加密数据,同时使用公钥加密密码副本。然后可以使用私钥解密对称密钥,从而在用户丢失密钥时解密数据。

这是一种明智的做法,还是我让它变得比我需要的更难?

我将在 Python 中执行此操作。看其他帖子似乎 Pycrypto 是我应该看的库。是这样吗?

谢谢

【问题讨论】:

标签: python encryption


【解决方案1】:

我认为这种方法会导致设计复杂,扩展和维护也会更加复杂。

更好的方法是使用对称密钥来存储和检索数据库中的敏感数据。可以提示用户输入他们的密钥,并且可以对数据进行解密或加密。这个link 将帮助您实现它。

【讨论】:

    【解决方案2】:

    如果协议没有严格要求,则永远不要加密密码。

    你可以做什么:

    1. 为每个字段创建一个随机对称密钥
    2. 使用主公钥加密该密钥(主私钥是安全的,例如on a stick
    3. 使用通过密码执行 PBKDF2 检索到的对称用户密钥加密相同的密钥
    4. 使用对称密钥加密数据
    5. 将对称密钥与主公钥和用户密钥、PBKDF2 功能所需的盐(如果可能,以协议的某种版本指示符作为前缀)和密文一起存储

    现在您只需制定一个程序,说明当用户忘记密码时如何采取行动。这需要设置新密码并检索数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-18
      • 2010-11-06
      • 1970-01-01
      • 2015-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多