有没有办法加密多个公钥的数据(所以多个密钥所有者可以使用他们的私钥解密数据)使用javascript cryto Api。
如果使用RSA-OAEP无法做到这一点,请您建议一下吗?
由于
window.crypto.subtle.encrypt(
{
name: "RSA-OAEP",
},
ArrayOfPublicKeys,
data
)
.then(function(encrypted){
console.log(encrypted);
})
答案 0 :(得分:2)
Jack Millan博士。
PGP,S / MIME和其他类似的消息传递解决方案启用多方消息的方式是: 1.生成消息加密密钥(MEK),例如,用于模式GCM的AES密钥, 2.查找每个收件人的公钥, 3.将MEK加密到每个收件人的公钥, 4.使用加密消息打包加密的MEK, 5.分发给参与者。
这里的挑战是公钥的安全发现,大多数应用程序都在这上面,并使用户进行手动指纹验证或依赖第三方(如证书颁发机构)来验证密钥与主题的绑定。
您可以在此处找到使用具有单个收件人的webcrypto执行此操作的示例: https://pkijs.org/examples/CMSEnvelopedExample.html
此演示的来源如下: https://github.com/PeculiarVentures/PKI.js/tree/master/examples/HowToEncryptCMSviaCertificate