已解决
密码学Python
RSA(客户端加密/服务器解密)10
这是该问题的项目的延续,但没有Bouncy城堡。
所以我决定废弃Bouncy Castle(可惜,我喜欢这个名字)
无论如何
我有一台服务器和一台客户端。 客户端需要将序列化对象发送到服务器,然后服务器将处理此对象。
它这样做,但我想为该过程添加加密。 但是没有存储文件或类似的东西。 该过程需要基于会话(在某种意义上)
因此,客户端将从服务器请求密钥,服务器将生成密钥对并将密钥发送到客户端。
然后,客户端使用此密钥加密对象string key = ASCIIEncoding.ASCII.GetString(RequestKey(tcpclnt));
var RsaClient =new RSACryptoServiceProvider(2048);
while (key.Length > 0) {
RsaClient.FromXmlString(key);
var transmit = ASCIIEncoding.ASCII.GetBytes(stringtosend);
var encrypted = RsaClient.Encrypt(transmit,false);
然后服务器接收这些加密的字节并尝试解密它们raw = Receive(clientSocket);
byte[] r = TrimBytes(ASCIIEncoding.ASCII.GetBytes(raw),256);
var sdecrypted = ASCIIEncoding.ASCII.GetString(RsaServer.Decrypt(r, false));
但是,唉,服务器无法做到这一点。 在解密时它会抛出一个错误Key does not exist.
所以,我的问题是,我做错了什么?
非常感谢您提供任何帮助。UPDATE
改变了服务器中的代码var RSAKeyInfo = new RSACryptoServiceProvider(2048, new CspParameters(1)).ExportParameters(true);
新错误The parameter is incorrect
区块链技术
2019.09.16
3563
收藏