当前位置: 首页 > news >正文

国密GmSSL v2版本命令行方式生成国密sm2私钥、公钥、签名和验证签名

前言

GmSSL是国密算法的工具库(主要包含SM2、SM3、SM4和国密SSL证书生成等功能),项目本身是OpenSSL的分支,但是截至文章发布为止,OpenSSL主分支的国密算法并不完善,目前并不支持签名和解签,所以国密算法这块还是需要使用GmSSL工具库。

网上现在并没有v2版本的GmSSL可用的命令行文章,本章用于记录这些命令。

本文原创自csdn博客,其他网站看到这篇文章都是盗,版,爬。虫。网站,支持原创,远离盗版。

GmSSL-v2编译安装

GmSSL-v2是c/c++编写的,编译比较麻烦,使用visual studio编译,需要perl环境,根据报错提示一步步来就可以编译成功。

国密算法命令行

通过GmSSL v2的命令行gmssl -help可以查看帮助说明。

下面为国密sm2私钥、公钥、签名和验证签名四种常用的命令行。

私钥生成

使用椭圆曲线算法生成私钥

使用椭圆曲线生成私钥到文件

gmssl ecparam -genkey -name sm2p256v1 -text -out eguidPrikey.pem

生成私钥到命令行控制台

gmssl ecparam -genkey -name sm2p256v1 -text

-----BEGIN EC PRIVATE KEY-----
私钥内容
-----END EC PRIVATE KEY-----

公钥生成

生成公钥到控制台

gmssl pkey -in sm2.pem -pubout -text_pub

-----BEGIN PUBLIC KEY-----
公钥内容
-----END PUBLIC KEY-----
Public-Key: (256 bit)
pub:
04:dc:24:ec:0e:a2:a5:6a:51:0f:ec:f9:c4:af:a6:
96:3d:7b:b5:a3:b8:e8:00:8f:19:6e:89:20:31:e5:
51:99:28:a4:7f:94:fe:d9:f3:bf:c6:71:9e:09:8a:
82:24:d9:aa:0e:2b:78:c0:3d:37:1f:fb:43:f4:e0:
8a:10:eb:44:8d
ASN1 OID: sm2p256v1
NIST CURVE: SM2

生成公钥到文件

gmssl pkey -in sm2.pem -out pub.pem -pubout -text_pub

私钥生成签名

id为空默认填写1234567812345678,id一般自行决定
gmssl sm2utl -sign -in test.txt -inkey sm2.pem -out out.txt -id 1

公钥验证签名

id为空默认填写1234567812345678,验签id与签名id保持一致
gmssl sm2utl -verify -in test.txt -sigfile out -pubin -inkey pub.pem -id 1

相关文章:

国密GmSSL v2版本命令行方式生成国密sm2私钥、公钥、签名和验证签名

前言 GmSSL是国密算法的工具库(主要包含SM2、SM3、SM4和国密SSL证书生成等功能),项目本身是OpenSSL的分支,但是截至文章发布为止,OpenSSL主分支的国密算法并不完善,目前并不支持签名和解签,所以…...

2023年9月惠州/深圳CPDA数据分析师认证找弘博创新

CPDA数据分析师认证是大数据方面的认证,助力数据分析人员打下扎实的数据分析基础知识功底,为入门数据分析保驾护航。 帮助数据分析人员掌握系统化的数据分析思维和方法论,提升工作效率和决策能力,遇到问题能够举一反三&#xff0c…...

it运维监控管理平台,统一运维监控管理平台

随着系统规模的不断扩大和复杂性的提高,IT运维管理的难度也在逐步增加。为了应对这一挑战,IT运维监控管理平台应运而生。本文将详细介绍IT运维监控管理平台的作用和优势以及如何选择合适的平台。 IT运维监控管理平台的作用管理平台 IT运维监控管理平台是…...

TDengine 官网换了新“皮肤”,来看看这个风格是不是你的菜

改版升级,不同以“网”!为了更好地服务客户,让大家能够更便捷、清晰地了解我们的产品和功能,我们决定给 TDengine 官网换个新“皮肤”~精心筹备下,新官网终于成功与大家见面啦——https://www.taosdata.com/。TDengine…...

MFC:自绘CListBox,GetText返回一个乱码

问题描述 自绘CListBox,GetText返回一个乱码,并且还会伴随以下断言 解决方案 ListBox Control 属性【Has Strings】改为True即可...

shell 脚本发布前后端代码

shell 脚本发布前后端代码 1、发布前端2、发布后端 1、发布前端 #! /bin/bashif [ ! $1 ] thenecho "this command needs 1 parameters"exit fiif [ -d "/usr/local/nginx/html/xxxx-$1" ] thenecho "file exists: /usr/local/nginx/html/xxxx-$1, p…...

我的私人笔记(Linux中安装mysql)

1.安装wget:yum -y install wget 2.下载mysql社区版本源并安装 wget https://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm yum install -y mysql57-community-release-el7-10.noarch.rpm rpm --import https://repo.mysql.com/RPM-GPG-KEY-mys…...

IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Maven目录结构和idea的整合

Maven工程目录结构约束(约束>配置>代码) 项目名 src【书写源代码】 main【书写主程序代码】 java【书写java源代码】resources【书写配置文件代码】 test【书写测试代码】 java【书写测试代码】 pom.xml【书写Maven配置】 测试步骤(进入项目名根目录【在根…...

Android Automotive概述

Android开发者的新赛道 在智能手机行业初兴起时,包括BAT在内许多传统互联网企业都曾布局手机产业,但是随着手机市场的基本定型,造车似乎又成了各大资本下一个追逐的方向。百度、小米先后宣布造车,阿里巴巴则与上汽集团共同投资创…...

iOS 16.4更新指南:问题解答与新功能一览

我应该更新到iOS 16.4吗?这是许多iPhone用户在新更新可用时问自己的一个常见问题。最新的iOS版本提供了各种功能和改进,因此更新的诱惑力很大。 但是,在更新之前,你应该考虑几个因素,以确保安装过程顺利成功。这些因素…...

Vue + Element UI 前端篇(八):管理应用状态

使用 Vuex 管理应用状态 1. 引入背景 像先前我们是有导航菜单栏收缩和展开功能的,但是因为组件封装的原因,隐藏按钮在头部组件,而导航菜单在导航菜单组件,这样就涉及到了组件收缩状态的共享问题。收缩展开按钮触发收缩状态的修改…...

开发常用代码区

1. 查询两个LocalDate类型之间的所有日&#xff08;周&#xff0c;月&#xff09; long numOfDays ChronoUnit.WEEKS.between(startDateLocal, endDateLocal); List<LocalDate> dateList LongStream.range(0, numOfDays).mapToObj(startDateLocal::plusWeeks)//映射.c…...

SpringBoot+MySQL+Vue前后端分离的宠物领养救助管理系统(附论文)

文章目录 项目介绍主要功能截图:后台:登录个人中心宠物用品管理宠物领养管理用户管理用户领养管理宠物挂失管理论坛管理系统管理订单管理前台首页宠物挂失论坛信息宠物资讯部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创...

ClickHouse 存算分离改造:小红书自研云原生数据仓库实践

ClickHouse 作为业界性能最强大的 OLAP 系统&#xff0c;在小红书内部被广泛应用于广告、社区、直播和电商等多个业务领域。然而&#xff0c;原生 ClickHouse 的 MPP 架构在运维成本、弹性扩展和故障恢复方面存在较大局限性。为应对挑战&#xff0c;小红书数据流团队基于开源 C…...

STM32-DMA

1 DMA简介 DMA&#xff08;Direct Memory Access&#xff09;,中文名为直接内存访问&#xff0c;它是一些计算机总线架构提供的功能&#xff0c;能使数据从附加设备&#xff08;如磁盘驱动器&#xff09;直接发送到计算机主板的内存上。对应嵌入式处理器来说&#xff0c;DMA可…...

1065 A+B and C (64bit)

题&#xff1a;点我 题目大意&#xff1a; 这题虽然看着像签到&#xff0c;然鹅签不过去。 因为我最初写的沙雕代码是&#xff1a; #include<iostream> #include<cstdio> using namespace std; int main(void) {int t;scanf("%d", &t);for (int i …...

阿里云效和阿里在线idea使用

阿里云效 https://flow.aliyun.com/all?page1 阿里在线idea&#xff1a;https://ide.aliyun.com/ 在云效中创建的项目可以在在线idea 打开 运行中的项目 设置ssh 设置以后可以使用云效率的代码构建来构建代码 设置 添加自有云或者体验5h...

[git] 删除分支中的内容 -> 空分支

git branch 分支名1 #创建一个新分支git checkout 分支名1 #切换到刚创建的分支上git rm -rf . #删除所有文件内容 -> 空分支&#xff08;注意&#xff1a;命令后面有个.&#xff09; 也可以 git checkout --orphan 分支名1 #创建一个分支&#xff0c;其包含父分支…...

git 配置

vi ~/.gitconfig 安装开源命令行对比工具 delta: https://github.com/dandavison/delta 详细设置delta&#xff1a;https://www.5axxw.com/wiki/content/xrx4vf [user]name xxemail xxxxxx.com[core]attributesfile ~/.gitattributespager deltaquotepath false[credentia…...

vue router进行路由跳转并携带参数(params/query)

在使用router.push进行路由跳转到另一个组件时&#xff0c;可以通过params或query来传递参数。 1. 使用params传参&#xff1a; // 在路由跳转时传递参数 router.push({ name: targetComponent, params: {paramName: paramValue // 参数名和值 } });// 在目标组件中通过$r…...

保姆级教程:Win10到Win11,VMware虚拟机无损迁移全流程(含GRUB修复)

从Win10到Win11&#xff1a;VMware虚拟机无损迁移与GRUB修复终极指南当你拿到崭新的Win11电脑&#xff0c;最头疼的莫过于如何将旧电脑上那些精心配置的VMware虚拟机环境完整迁移过来。特别是那些承载着重要开发环境或测试数据的Linux虚拟机&#xff0c;稍有不慎就可能面临系统…...

随机森林回归与PISO算法融合:实现CFD在线模型修正与状态估计

1. 项目概述&#xff1a;当随机森林“遇见”PISO算法在计算流体动力学&#xff08;CFD&#xff09;的日常工作中&#xff0c;我们常常面临一个核心矛盾&#xff1a;物理模型的普适性与特定场景的精确性难以兼得。传统的湍流模型&#xff0c;无论是雷诺平均纳维-斯托克斯&#x…...

Agent 状态持久化:基于 Redis 的多轮交互上下文存储方案

一、 引言 (Introduction) 1.1 钩子&#xff1a;从 Siri 答非所问到 AI Agent 的「失忆症噩梦」 你有没有遇到过这种令人血压升高的场景&#xff1a; 早上起床&#xff0c;对着家里的智能音箱&#xff08;假设它搭载了最新的「多轮对话」AI Agent&#xff09;说&#xff1a;“嘿…...

Vaultwarden同步失败排查指南:日志诊断与5分钟修复

1. 这不是Bitwarden客户端的问题&#xff0c;而是你本地运行的Vaultwarden服务“断联”了很多人看到手机App里点“同步”没反应、网页端新建密码点保存后刷新就消失、或者浏览器插件提示“无法连接到服务器”&#xff0c;第一反应是重装客户端、清缓存、换网络——结果折腾半天…...

除了Easy App Locker,还有哪些Mac应用加锁方案?横向对比与避坑指南

Mac应用加锁全方案评测&#xff1a;从系统原生到第三方工具的深度选择指南当你把Mac借给同事调试代码时&#xff0c;是否担心他们无意间看到你的通讯录或邮件&#xff1f;又或者家里的小朋友总想偷偷打开你的游戏客户端&#xff1f;应用加锁早已超越简单的隐私保护&#xff0c;…...

电池阻抗测量技术:伪随机序列与信号处理应用

1. 电池阻抗测量技术概述电池阻抗测量作为电化学系统状态监测的核心手段&#xff0c;其原理基于对电池施加特定激励信号并测量响应信号&#xff0c;通过分析两者的幅值和相位关系来获取阻抗谱。这种频域分析方法能够反映电池内部电荷转移、扩散过程等动力学特性&#xff0c;为电…...

Windows设备管理器报‘代码43’导致HDMI无输出?保姆级排查与修复指南(附原理)

Windows设备管理器报‘代码43’导致HDMI无输出&#xff1f;保姆级排查与修复指南&#xff08;附原理&#xff09;当你正准备进行一场重要的演示&#xff0c;或是沉浸在游戏世界中时&#xff0c;突然发现外接显示器黑屏无信号&#xff0c;设备管理器显示"Windows已停止该设…...

《Java 基础必学:ArrayList、HashMap 和泛型详解》

一、引言 1.为什么这些是 Java 基础的重点&#xff1f; ArrayList、HashMap 和泛型是Java集合框架的核心组成部分&#xff0c;广泛应用于实际开发中。 ArrayList&#xff1a;基于动态数组实现&#xff0c;支持快速随机访问&#xff0c;适合频繁查询和遍历的场景。HashMap&…...

虚幻引擎Pak文件可视化分析工具原理与实践

1. 为什么一个Pak文件查看器值得花两周重写三遍&#xff1f;虚幻引擎项目打包后生成的.pak文件&#xff0c;对绝大多数开发者来说就是个“黑盒”——你清楚它装着所有资源&#xff1a;贴图、音频、蓝图、关卡数据&#xff0c;甚至UAsset序列化后的二进制结构&#xff1b;但你完…...

安全打底・能力拉满:我的 OpenClaw 龙虾生态 Skill 清单

2026开年AI圈两大热词&#xff1a;龙虾&#xff08;OpenClaw&#xff09;、Skill插件。龙虾是短期流量话题&#xff0c;热度来得快去得快&#xff1b;而Skill插件可一次部署、长期复用&#xff0c;真正落地到日常办公、协作、社交场景。 市面多数Skill推荐内容堆砌命令、实用性…...