加密的加密数据

问题描述:

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

我认为这个问题的关键尺寸。

我的密钥大小为1024位。

简短的源代码:

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

    byte[] encryptedData = RSAalg.Encrypt(dataToEncrypt, false); 
    
  2. 第二步:通过与其他RSA公钥加密数据密钥大小1024位或者

    byte[] encryptedData1 = RSAalg1.Encrypt(encryptedData, false); 
    

第二步显示错误。我怎样才能解决这个问题?

+0

这是什么语言? – anuragsn7 2012-04-09 11:36:09

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

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

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

+0

我想通过使用两个不同的人使用两个键来进行安全的电子投票....这使我可以确保数据不会解密,除非两个键解密数据..... – Amin 2012-04-09 18:05:46

+0

我想做一个通过使用两个不同的密钥来保证电子投票......这使我可以确保数据不会被解密,除非存在两个密钥...... 当第一个加密数据已经通过使用第一个密钥完成时。会通过使用第二密钥来加密的第一步 请咨询再进行第二次加密。 – Amin 2012-04-09 18:20:52

+0

这不是一个新问题,您可以通过Google搜索找到关于此的很多文献**。一种方法是使用随机对称密钥(例如256位AES)和具有RSA-1的前一半(128位)和具有RSA-2的后一半(128位)来加密数据。 – poupou 2012-04-09 18:27:50