服务器系统rsa,RSA(客户端加密/服务器解密)

本文探讨了一种使用Python的RSA加密技术实现客户端与服务器之间的安全数据传输。在过程中,客户端请求服务器生成的密钥对,并用其加密数据。然而,服务器在尝试解密时遇到‘Key does not exist’错误。问题可能在于密钥的交换或使用。作者尝试更新服务器代码但仍遇到新的错误‘The parameter is incorrect’。博客讨论了加密通信的关键步骤和可能的错误源,寻求解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

已解决

密码学Python

RSA(客户端加密/服务器解密)649788f17101bff39e9643602f4d66a1.png10

这是该问题的项目的延续,但没有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

95fa9268de11d0061c77acb40a6f985f.png3563

3037648d6a74d46918a474e105002d34.png收藏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值