需求背景
c# 调用了C++动态库,设计到一些敏感信息的函数传递,为了不让动歪脑筋的人,直接使用c++编译的动态库。所以需要传递的数据进行加密
实现过程
起初,C++使用了 Openssl 库进行RSA私解 C# 公加。过程中测试c# 加密出来的字符,使用百度在线RSA解蜜 ,是能解出来的。而C++接受到C#密文,私钥解码一直返回-1。
折腾了大半天发现Openssl生成出来的密钥不能做到跨语言通用(可能是各个语言对加解密格式,密钥格式不一致)。
最终解决办法
使用Crypto++库,可以做到C++RSA内容结果与C#一致。使用.NET的XML格式RSA密钥。
源代码下载:源码文件