C# 加密数据

C# 加密数据,c#,encryption,cryptography,rsa,C#,Encryption,Cryptography,Rsa,我想加密我使用RSA加密的加密数据。但当我使用另一个公钥加密加密数据时。该错误是未指定的错误 我认为问题在于关键尺寸 我的密钥大小是1024位 简要源代码: 第一步:使用密钥大小为1024位的RSA公钥加密数据 byte[] encryptedData = RSAalg.Encrypt(dataToEncrypt, false); 第二步:使用另一个密钥大小为1024位的RSA公钥加密数据 byte[] encryptedData1 = RSAalg1.Encrypt(encryptedDat

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

我认为问题在于关键尺寸

我的密钥大小是1024位

简要源代码:

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

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

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

错误显示在第二步中。如何解决此问题?

由于存在填充,您无法加密1024位数据,而这正是使用1024位密钥加密的数据

如果您使用的是.NET和C,那么Encrypt with false意味着您使用PKCS1填充,这将允许您从内存中加密117字节,而不是128字节


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

由于填充,您无法加密1024位的数据,而这正是使用1024位密钥加密的数据

如果您使用的是.NET和C,那么Encrypt with false意味着您使用PKCS1填充,这将允许您从内存中加密117字节,而不是128字节


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

我想通过使用两个密钥对不同的人进行安全的电子投票。。。。这使我能够确保数据不会被解密,除非两个密钥对数据进行解密……我想使用两个不同的密钥进行安全的电子投票。。。。这使我能够确保数据不会被解密,除非存在两个密钥…。。当使用第一个密钥完成第一次加密数据时。。我将使用第二个密钥再次加密第一步,请给出建议。这不是一个新问题,你可以通过谷歌搜索找到很多关于这方面的文献。一种方法是使用随机对称密钥加密数据,例如256位AES,前半部分128位使用RSA-1,后半部分128位使用RSA-2。我想使用两个密钥对不同的人进行安全的电子投票。。。。这使我能够确保数据不会被解密,除非两个密钥对数据进行解密……我想使用两个不同的密钥进行安全的电子投票。。。。这使我能够确保数据不会被解密,除非存在两个密钥…。。当使用第一个密钥完成第一次加密数据时。。我将使用第二个密钥再次加密第一步,请给出建议。这不是一个新问题,你可以通过谷歌搜索找到很多关于这方面的文献。一种方法是使用随机对称密钥加密数据,例如256位AES,前半部分128位使用RSA-1,后半部分128位使用RSA-2。