生成用于加密的密码短语

问题描述 投票:0回答:2

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

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

是否有可能以这样的方式生成密码短语,使其不是所有人都可以通过,并且可以传递给AES来解密/加密相同的数据?

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

现在,当人力资源部门授权人员想要查看员工的工资时,他们可以查看,但他们应该拥有自己的密钥(不是公共密钥)。

encryption aes
2个回答
1
投票

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

所以你会:

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

然后,当用户提供其个人密钥时,您使用它来解密存储和加密的主密钥,然后使用它来解密数据。这样,数据加密可以使用相同的密钥完成,您可以使用个人密钥来管理访问。

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

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


0
投票

现在,当人力资源部门授权人员想要查看员工的工资时,他们可以查看,但他们应该拥有自己的密钥(不是公共密钥)。

使用对称加密 - 实际上只有一个数据加密密钥(DEK)。 DEK可以是随机的,也可以是内容特定的。您无法使用多个密钥来解密相同的加密内容。

使用非对称加密时通常会做什么,当有人向用户授权(共享/分配)加密内容时,DEK会被用户的公钥重新加密,因此只有授权用户才能解密DEK然后解密内容(尽管 - DEK对所有用户都是一样的)。

当用户登录时我会问他们Key

无论如何要登录用户需要提供一个秘密(其用户密码或其他凭据),所以 - 你真的需要经历所有的喧嚣吗?使用某些特定于系统的主密钥加密REST数据并不足以仅向经过身份验证的授权用户提供加密内容?

© www.soinside.com 2019 - 2024. All rights reserved.