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_oPriRsa、m_oPubRsa,两个加载秘钥的方法LoadRSAPriKey/LoadRSAPubKey。
加载OpenSSL形式的秘钥,必须使用OpenSSL的封装库,对于客户端来说,不必安装整套OpenSSL的库来完成(当然也有客户端安装OpenSSL库流程)。在这里需要用到RSA加载秘钥的接口(PEM_read_RSA_PUBKEY(fp, &rsa,NULL, NULL); PEM_read_RSAPrivateKey(fp, &rsa,NULL, NUL

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

被折叠的 条评论
为什么被折叠?



