消息是
attempt to process message to long for cipher
并且完整的调用堆栈是
Org.BouncyCastle.Crypto.DataLengthException was unhandled by user code
HResult=-2146233088
Message=attempt to process message to long for cipher
Source=BouncyCastle.Crypto
StackTrace:
at Org.BouncyCastle.Crypto.BufferedAsymmetricBlockCipher.ProcessBytes(Byte[] input, Int32 inOff, Int32 length)
at Org.BouncyCastle.Crypto.BufferedAsymmetricBlockCipher.DoFinal(Byte[] input, Int32 inOff, Int32 length)
at Org.BouncyCastle.Crypto.BufferedCipherBase.DoFinal(Byte[] input)
at MyCode.Bouncy.PublicEncrypt(String value, String pubKey) in c:\MyCode\Helpers\Bouncy.cs:line 80
InnerException:
尝试使用公钥加密长度为360的字符串时,密钥长度为1024位
错误似乎表明使用此密钥加密的字符串长度有限制
这是对的吗?
答案 0 :(得分:1)
是的,可以使用非对称密码加密的邮件大小有限制。对称密码没有这些限制。
您不应该使用非对称密码直接加密邮件。您应该使用非对称密码加密对称密钥(会话密钥或内容加密密钥),然后使用该密钥加密消息。然后,您传输加密的会话密钥和加密的消息。
接收方将使用其私钥解密会话密钥,并使用解密的会话密钥解密消息。