我正在用使用ed25519曲线生成的公钥,用OpenPGP.js加密一些东西。就像这样:
var options = {
data: str,
publicKeys: publicKeys,
armor: false
};
openpgp.encrypt(options).then(function(ciphertext) {
var bytes = ciphertext.message.packets.write();
});据我所观察,输出是确定性的--也就是说,每次输出都是相同的,没有随机分量。我在我的数据库设计中利用了这个事实,因此我需要它始终是确定性的。
这是我可以假设的吗?这里有记录吗?对OpenPGP来说,这是正确的行为吗?
我现在有点怀疑了,因为这篇文章指定它应该有一个随机组件:用GnuPG和相同的密钥加密同一个文件会产生相同的密文吗?
发布于 2018-05-06 13:09:34
它应该有随机成分。非对称密钥的加密方法通常是生成随机AES密钥,使用AES加密数据,然后用非对称密钥加密随机密钥。这是出于性能原因。但是,由于密钥每次都是随机的,所以每次得到的密码文本应该是不同的。我不知道为什么不是在你的情况下。
https://security.stackexchange.com/questions/185333
复制相似问题