封装“国密算法SM4”为活字格插件
刚开始使用开源的.net 代码进行封装,测试了几个库,随便测试就出错, 比如明文字符长一点就异常。
然后终于找到一个使用人数相对比较多的开源库, 自己加密,然后解密,很顺利。但是跟第三方对接的时候,对方密文发过来,我解出来是乱码,哪里错了呢?
可能对方错了,也可能我错了。
测试了几个在线sm4加密解密的网站,解出来都是乱码, 在线sm4加密解密工具靠谱吗?
我得依据一个标准来检验工具的正确性。。。。。
在github 一早就注意到:http://gmssl.org/ https://github.com/guanzhi/GmSSL
但人家是c语言写的,也没有提供c#的wrapper接口
所以最早就忽视这个3.3k starts的开源库。
不得以,下载GmSSL源代码进行编译, windows下编译也是一路坑。。。。。
花了一个下午进行编译,编译后就生成了可执行文件gmssl.exe,解密测试,解密成功。 说明我之前用的.net 版本的算法有问题, 没有时间和精力去检查算法哪里错了。
最快的手段还是拿来主义,直接使用GmSSL里面的接口。
活字格插件是C#语言编写的。c#怎么调用c的方法呢?
。。。。。。。。。。。。。。。
省略好多字
终于“sm4解密”,“sm4加密”插件出现了。
|