是否存在允许多个密钥解密和加密的加密算法?
A = Key one
B = Key two
应该可以进行如下数据交换
1. Clear Text == A ==> Encrypted == B ==> Clear Text
2. Clear Text == B ==> Encrypted == A ==> Clear Text
编辑1:
算法应该以Java形式提供。
编辑2:更广泛的图片
数据库存储加密数据。大多数用户必须使用他们的个人密码对一小部分数据进行读写(解密和加密)。有些用户需要使用他们的个人密码访问(解密和加密)所有数据
两个用户组的成员不得知道另外的密码。
答案 0 :(得分:2)
如果A是公钥,B是PKI系统中对应的私钥(或其他方式),则为是,否则为否。
更新:您现在提供了“更广泛的图片”,我担心答案已经成为:不,您不能这样做。要了解原因,您需要意识到两个组都需要能够加密和解密。所以你的要求确实是:
您可以做的最好的事情是使用一些授权机制来控制谁访问数据,并以未加密的方式存储数据。
答案 1 :(得分:2)
这通常通过存储在一个或多个公钥下加密的对称密钥来解决。
对称密钥用于加密数据库中的数据。每个用户都有一个非对称密钥对。如果用户有权查看一条数据,则必须存储在用户公钥下加密的对称密钥的副本。
这在Java中都是可以实现的。 Cipher.WRAP_MODE
可用于密钥包装/解包。
因为你提到Java是一个约束,我觉得这个问题只是关于主题。但请注意,关于加密和安全设计的一般性讨论是Stack Overflow的主题。