首页 > 解决方案 > 为加密生成密码

问题描述

我正在使用 AES 128 位加密算法(对称加密算法)加密一些数据。

我面临的问题是生成密钥?因为我有多个用户,我不想在用户之间共享公用密钥。

是否有可能以一种并非所有人都通用的方式生成密码短语,并且可以将其传递给 AES 以解密/加密相同的数据?

示例:假设我有一张包含员工及其薪水的表格。我想用 AES 加密来加密员工的薪水栏。

现在,当 HR 授权的人想要查看 Employee 的薪水时,他们可以查看,但他们应该有自己的 Key(而不是 common Key)。

标签: encryptionaes

解决方案


一种可能的解决方案是为每个用户创建一个主密钥的加密版本。

所以你会:

  1. 使用“主密钥”加密您的数据
  2. 使用“个人密钥”(每个用户一个)加密您的“主密钥”

然后,当用户提供其个人密钥时,您可以使用它来解密存储和加密的主密钥,然后使用它来解密数据。通过这种方式,数据的加密可以始终使用相同的密钥完成,并且您可以使用个人密钥来控制访问。

这假设虽然主密钥和加密数据永远不会离开服务器,但您必须在服务器上解密并将未加密的数据发送给用户(但当然为此使用安全线路,以防窃听)。

如果您想将数据发送给加密的用户,则无法执行此操作。


推荐阅读