Client-ServerRSA加解密通信方案-Client端(C#)(二)

本文详细介绍了在Unity客户端使用C#实现RSA加解密的步骤,包括自定义密钥模块CryptModule.cs的创建,加载PEM格式RSA密钥的方法,以及在Unity场景中的应用示例。

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

0. 背景

在前一文中有叙述了RSA加解密的Server端(一),使用C++在linux环境中实践。本文中将叙述Client Unity端中RSA加解密,使用符合(一)中图1的中通信协议。

1. 自定义密钥模块CryptModule.cs

在(一)中我们产生了公钥public.pem和私钥private.pem,我们将这两个文件复制到客户端StreamingAssets路径中,并且使用:

string pub = Path.Combine(Application.streamingAssetsPath, "public.pem");
string pri = Path.Combine(Application.streamingAssetsPath, "private.pem");

表明其路径,然后通过文件路径加载公钥私钥:

CryptModule cmodule = new CryptModule();
cmodule.LoadRSAPriKey(pri);
cmodule.LoadRSAPubKey(pub);

其中CryptModule是一个关于RSA钥模块,如下图所示:

这里写图片描述
图1.RSA钥模块

它有两个RSACryptoServiceProvider类[MSDN]实例m_oPriRsam_oPubRsa,两个加载秘钥的方法LoadRSAPriKey/LoadRSAPubKey

加载OpenSSL形式的秘钥,必须使用OpenSSL的封装库,对于客户端来说,不必安装整套OpenSSL的库来完成(当然也有客户端安装OpenSSL库流程)。在这里需要用到RSA加载秘钥的接口(PEM_read_RSA_PUBKEY(fp, &rsa,NULL, NULL); PEM_read_RSAPrivateKey(fp, &rsa,NULL, NUL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值