我想加密我使用RSA加密的加密数据。但是当我使用另一个公钥加密加密数据时。错误是“未指定的错误”
我认为密钥大小的问题。
我的密钥大小是1024位。
简要的源代码:
第一步:使用密钥大小为1024位的RSA公钥加密数据
byte[] encryptedData = RSAalg.Encrypt(dataToEncrypt, false);
第二步:使用密钥大小为1024位的另一个RSA公钥加密数据
byte[] encryptedData1 = RSAalg1.Encrypt(encryptedData, false);
第二步显示错误。我该如何解决这个问题?
答案 0 :(得分:0)
由于填充,您无法使用1024位密钥加密1024位数据(这是encryptedData
应该是什么)。
如果您使用的是.NET和C#,那么使用false
进行加密意味着您使用PKCS#1填充,它(从内存中)将允许您加密117个字节(而不是128个字节)。
注意:您不应该迭代第二次加密以获得结果 - 但您应该问自己为什么要使用两个密钥(密钥长度相同)加密此数据两次。如果您想要更高的安全性,那么您应该使用更大的密钥(一次)。 OTOH如果你想要多个密钥来解密数据,那么你需要一个不同的策略。