最近在工作中遇到需要对数据传输进行加密解密,一开始是.Net与.Net环境间进行交互,使用.Net下的【System.Security.Cryptography】完全没有问题,但后来要与Java,Android,IOS进行交互,结果是怎么都对不上,在查看后得知三者平台都使用的OpenSSL进行的加解密,于是就翻出了OpenSSL.Net...
- OpenSSL.Net是什么
OpenSSL.Net简单的理解是对OpenSSL的动态链接库(libeay32.dll,ssleay32.dll)进行的一组C#语言的封装,使其能在.Net环境下用C#语言对字符串进行的加密、解密、签名、验签等,详细功能与算法可查阅OpenSSL
- 使用OpenSSL.Net目的
前面已经说了是为了完成跨平台间的传输,达到一种相对的统一
- 使用OpenSSL.Net前提
-
- 安装OpenSSL工具(https://www.openssl.org/source),并对OpenSSL命令行有一定的了解。
- 下载OpenSSL.Net的源码(https://github.com/openssl-net/openssl-net),里面有有很详细的测试与调用方法。
- 开始OpenSSL.Net使用
1、新建一个项目并通过NuGet引用OpenSSL.Net(64位与32位按需安装):
2、安装成功后:
3、生成项目后需要把x64文件夹复制到项目的bin目录与ManagedOpenSsl.dll同级:
4、需要调整项目生成目标平台(32位就是x86,64位就是x64):
5、到此可以写代码了,大概来浏览下ManagedOpenSsl.dll的命名空间,详细可以下载源码查看: