首页 > 其他分享 >QT5中引入GMSSL库

QT5中引入GMSSL库

时间:2024-10-09 09:45:53浏览次数:7  
标签:QT5 编译 GMSSL 32bit 算法 国密 版本 引入

近来项目中需要使用加密算法,对上/下位机之间的消息进行加密。客户要求使用国密算法库,不能使用国际上通用的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输出解密后的明文:

标签:QT5,编译,GMSSL,32bit,算法,国密,版本,引入
From: https://www.cnblogs.com/world605/p/18452171

相关文章

  • YOLOv8改进 - 注意力篇 - 引入SimAM注意力机制
    一、本文介绍作为入门性篇章,这里介绍了SimAM注意力在YOLOv8中的使用。包含SimAM原理分析,SimAM的代码、SimAM的使用方法、以及添加以后的yaml文件及运行记录。二、SimAM原理分析SimAM官方论文地址:SimAM文章SimAM官方代码地址:SimAM源代码​SimAM注意力机制:是一种轻量级的自......
  • YOLOv8改进 - 注意力篇 - 引入EMA注意力机制
    一、本文介绍作为入门性篇章,这里介绍了EMA注意力在YOLOv8中的使用。包含EMA原理分析,EMA的代码、EMA的使用方法、以及添加以后的yaml文件及运行记录。二、EMA原理分析EMA官方论文地址:EMA文章EMA代码:EMA代码EMA注意力机制(高效的多尺度注意力):通过重塑部分通道到批次维度,并将......
  • YOLOv11改进 | 注意力篇 | YOLOv11引入24年最新Mamba注意力机制MLLAttention
    1. MLLAttention介绍1.1 摘要:Mamba是一种有效的状态空间模型,具有线性计算复杂度。最近,它在处理各种视觉任务的高分辨率输入方面表现出了令人印象深刻的效率。在本文中,我们揭示了强大的Mamba模型与线性注意力Transformer具有惊人的相似之处,而线性注意力Transforme......
  • PyQt5 使用 QLabel 实现图像 360度 不间断旋转
    PyQt5使用QLabel实现图像360度不间断旋转当我们需要实现让一个图像360度旋转时,比如:音乐播放器中播放时,歌曲封面的旋转效果,你可以尝试使用下面的方法代码结构本文中全部代码全在test_QLabel_whirling.py这一个文件中编码,步骤中有变动的地方会注释标注,无改动的不会重复显......
  • YOLO11改进|卷积篇|引入轻量级自适应提取卷积LAE
    目录一、【LAE】卷积1.1【LAE】卷积介绍1.2【LAE】核心代码二、添加【LAE】卷积机制2.1STEP12.2STEP22.3STEP32.4STEP4三、yaml文件与运行3.1yaml文件3.2运行成功截图一、【LAE】卷积1.1【LAE】卷积介绍下图是【LAE】卷积的结构图,让我们简单分析一下运行过程......
  • Pyqt5+SQLite
    通常在做业务逻辑时会遇到,如何在界面上对数据库信息进行操作的问题。这里我们选用SQLite,它是一种嵌入式数据库,以单个独立的文件形式存储数据,适用于Pyqt5的开发。下面做一个小案例,将数据库信息显示在界面中。1.创建数据库代码案例如下(创建一个用户信息表):conn=sqlite3.con......
  • QT5 C++槽函数的两种connect连接方式的区别,建议使用现代的连接方式
    QT5C++槽函数的两种connect连接方式的区别,建议使用现代的连接方式(1)QT5C++槽函数定义classMainWindow:publicQMainWindow{Q_OBJECT//......privateslots:voidslotSplitterMoved(int,int);//......}(2)使用旧的字符串connect连接方式,容易报错或者警告 连......
  • YOLOv11改进 | 注意力篇 | YOLOv11引入CBAM注意力机制
    1.CBAM介绍摘要:我们提出了卷积块注意力模块(CBAM),这是一种用于前馈卷积神经网络的简单而有效的注意力模块。给定中间特征图,我们的模块沿着两个独立的维度(通道和空间)顺序推断注意力图,然后将注意力图乘以输入特征图以进行自适应特征细化。由于CBAM是一个轻量级通用模块,因此它......
  • YOLOv8改进 - 注意力篇 - 引入SCAM注意力机制
    一、本文介绍作为入门性篇章,这里介绍了SCAM注意力在YOLOv8中的使用。包含SCAM原理分析,SCAM的代码、SCAM的使用方法、以及添加以后的yaml文件及运行记录。二、SCAM原理分析SCAM官方论文地址:SCAM文章SCAM官方代码地址:SCAM代码​SCAM注意力机制(空间上下文感知模块):空间上下......
  • vue2实现字体修改(全局/局部字体引入修改)/添加文字渐变色样式
    1.创建一个全局CSS文件创建一个单独的CSS文件,例如fonts.css,然后在main.js中引入。fonts.css文件内容:@font-face{font-family:'youshebiaotihei';src:url('../../fonts/youshebiaotihei.ttf')format('truetype');/*引用字体,但非全局使用*/font-wei......