使用主密钥进行Python加密

时间:2014-08-29 04:24:22

标签: python encryption

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

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

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

我将在Python中执行此操作。看看其他帖子,Pycrypto似乎是我应该关注的图书馆。这是对的吗?

由于

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

你能做什么呢?

  1. 为每个字段创建随机对称密钥
  2. 使用主公钥加密该密钥(主私钥保密,例如on a stick
  3. 使用通过密码执行PBKDF2检索到的对称用户密钥加密相同的密钥
  4. 使用对称密钥加密数据
  5. 存储对称密钥"包裹"使用主公钥和用户密钥,PBKDF2功能所需的盐(如果可能的话,以协议的某种版本指示符为前缀)和密文一起
  6. 现在,您只需要在用户忘记密码时采取措施。它需要设置一个新密码并检索数据。