2

消息是

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 位

该错误似乎表明可以使用此密钥加密的字符串的长度有限制

这个对吗 ?

4

1 回答 1

1

是的,可以使用非对称密码加密的消息大小是有限制的。对称密码没有这些限制。

您不应该直接使用非对称密码加密消息。您应该使用非对称密码来加密对称密钥(会话密钥或内容加密密钥),然后使用该密钥来加密消息。然后,您传输加密的会话密钥和加密的消息。

然后,接收者将使用他们的私钥解密会话密钥,并使用解密的会话密钥来解密消息。

于 2013-04-22T11:22:47.143 回答