加密加密数据

时间:2012-04-09 11:32:15

标签: c# encryption cryptography rsa

我想加密我使用RSA加密的加密数据。但是当我使用另一个公钥加密加密数据时。错误是“未指定的错误”

我认为密钥大小的问题。

我的密钥大小是1024位。

简要的源代码:

  1. 第一步:使用密钥大小为1024位的RSA公钥加密数据

    byte[] encryptedData = RSAalg.Encrypt(dataToEncrypt, false);
    
  2. 第二步:使用密钥大小为1024位的另一个RSA公钥加密数据

    byte[] encryptedData1 = RSAalg1.Encrypt(encryptedData, false);
    
  3. 第二步显示错误。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

由于填充,您无法使用1024位密钥加密1024位数据(这是encryptedData应该是什么)。

如果您使用的是.NET和C#,那么使用false进行加密意味着您使用PKCS#1填充,它(从内存中)将允许您加密117个字节(而不是128个字节)。

注意:您不应该迭代第二次加密以获得结果 - 但您应该问自己为什么要使用两个密钥(密钥长度相同)加密此数据两次。如果您想要更高的安全性,那么您应该使用更大的密钥(一次)。 OTOH如果你想要多个密钥来解密数据,那么你需要一个不同的策略。