C# 要解密的数据超过此模数的最大值128字节

C# 要解密的数据超过此模数的最大值128字节,c#,aes,rsa,tcpclient,tcplistener,C#,Aes,Rsa,Tcpclient,Tcplistener,我正试图用RSA/AES在客户机和服务器之间建立安全连接,我想你知道它是如何工作的。现在我的问题是,我得到了写在标题中的错误消息。我知道,有2或3个其他线程具有相同的标题,但它们都试图从pc上的文件中加密和解密。我在加密AES密钥时遇到了这个错误,该密钥是使用RSA公钥加密的,这是我所知道的正常方式 这里是我的客户机和服务器应用程序 客户: 使用制度; 使用System.Collections.Generic; 使用系统组件模型; 使用系统数据; 使用系统图; 使用System.Linq; Ne

我正试图用RSA/AES在客户机和服务器之间建立安全连接,我想你知道它是如何工作的。现在我的问题是,我得到了写在标题中的错误消息。我知道,有2或3个其他线程具有相同的标题,但它们都试图从pc上的文件中加密和解密。我在加密AES密钥时遇到了这个错误,该密钥是使用RSA公钥加密的,这是我所知道的正常方式

这里是我的客户机和服务器应用程序

客户:

使用制度; 使用System.Collections.Generic; 使用系统组件模型; 使用系统数据; 使用系统图; 使用System.Linq; Net系统; 使用System.Net.Sockets; 使用System.Security.Cryptography; 使用系统文本; 使用System.Windows.Forms; 名称空间ClientLizenz { 公共部分类Form1:Form { 公共表格1 { 初始化组件; } 私有无效按钮1\u单击对象发送者,事件参数e { 多瑟廷; } 私人空间 { 尝试 { textBox2.Text=传递的开始; 编码测试=Encoding.Default; UTF8Encoding bla=新的UTF8Encoding; Int32端口=14000; TcpClient客户端=新的TcpClient192.168.1.177,端口; NetworkStream=client.GetStream; stream.ReadTimeout=System.Threading.Timeout.Infinite; stream.WriteTimeout=System.Threading.Timeout.Infinite; textBox2.Text=已通过套接字创建; RSACryptServiceProvider RSAC=新的RSACryptServiceProvider4096; byte[]Key=bla.GetBytesRSAC.ToXmlStringfalse; stream.WriteKey,0,Key.Length; textBox2.Text=传递的发送键; 字节[]encryAES=新字节[1024]; stream.ReadencryAES,0,encryAES.Length; textBox2.Text=通过接收加密的AES密钥; 字节[]decryAES=RSAC.DecryptencryAES,true; string decreasString=string.Empty; textBox2.Text=已通过解密; decryAES中的每个字节项 { DecreyaessString+=初始项ToString; } textBox1.Text=递减字符串; 关闭;; 水流。冲洗; 流式处理; } 捕获异常e { textBox1.Text=e.ToString; } } } } 服务器:

使用制度; 使用System.Collections.Generic; 使用System.Linq; Net系统; 使用System.Net.Sockets; 使用System.Security.Cryptography; 使用系统文本; 名称空间服务器 { 班级计划 { 静态环[]args { UTF8Encoding bla=新的UTF8Encoding; //UNICODEENCODE bla=新的UNICODEENCODE; Int32端口=14000; IPAddress localAddr=IPAddress.Parse192.168.1.177; TcpListener服务器=新的TcpListenerlocalAddr,端口; 服务器启动; 虽然是真的 { Console.WriteWaiting用于连接; TcpClient client=server.AcceptTcpClient; 控制台。WriteLineConnected!; NetworkStream=client.GetStream; stream.ReadTimeout=System.Threading.Timeout.Infinite; stream.WriteTimeout=System.Threading.Timeout.Infinite; 字节[]键缓冲区=新字节[2048]; stream.ReadKeyBuffer,0,KeyBuffer.Length; RSACryptServiceProvider RSAC=新的RSACryptServiceProvider4096; RSAC.FromXmlStringbla.GetStringKeyBuffer; RijndaelManaged RM=新RijndaelManaged; 字节[]RMKeyBuffer=RSAC.EncryptRM.Key,true; stream.WriteRMKeyBuffer,0,RMKeyBuffer.Length; 关闭;; } Console.ReadKey; } } }
我是不是做错了什么,或者有什么意义?

确保加密和解密正确的字符串。将我的字节固定到实际需要的长度可以解决问题