QT5中引入GMSSL库

近来项目中需要使用加密算法,对上/下位机之间的消息进行加密。客户要求使用国密算法库,不能使用国际上通用的AES、RSA等算法。

国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。
其中SM1没有开源,其他的均开源。

源码编译

开源的国密算法全网满天飞,C语言实现到处都是。
调研发现有一个清华的开源库(GMSSL)可用,而且支持大多数国密算法,最新版本也不太老(2022),所以选择GMSSL库。

下载的版本:

其中EXE安装程序是编译好的64bit版本,因为我使用的是QT MinGW-32bit编译器,所以稍微麻烦一点,需要自己编译32bit版本。
选择32bit的工具:

编译GMSSL源码参考博客:



VS2022引入GMSSL

64bit版本

32bit版本




32bit必须把dll动态链接库拷贝到exe所在目录才能运行,64bit不是必须。

结果:

QT5中引入GMSSL库

本地安装的是qt5.14.2\mingw73_32,只能使用32bit版本。
在项目上右键-添加库

外部库

编译成功后运行,使用SM1输出解密后的明文:

posted @   易阳Louis  阅读(145)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示