Openssl之SM2加解密命令

embedded/2025/2/22 14:54:49/
### 1. 生成 SM2 私钥openssl genpkey -algorithm EC \-pkeyopt ec_paramgen_curve:sm2 \-out sm2_private_key.pem### 2. 从私钥导出 SM2 公钥openssl pkey -in sm2_private_key.pem \-pubout \-out sm2_public_key.pem### 3. 使用 SM2 公钥加密openssl pkeyutl -encrypt \-pubin \-inkey sm2_public_key.pem \-in plaintext.txt \-out sm2_ciphertext.bin### 4. 使用 SM2 私钥解密openssl pkeyutl -decrypt \-inkey sm2_private_key.pem \-in sm2_ciphertext.bin \-out decrypted.txt

 上面的命令在Openssl v3.0(ubuntu22)版本上验证成功

使用openssl动态库开发的程序生成的密钥和密文可能如下,使用上面的openssl命令可以解密成功

Public Key (PEM format):
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEAAIEhX4KGgCzDshA1K7SBZ6SGSZb
djvANDlquERbZKBXGva8+NUX9a65CdxDjTKWCFdtSZWUGWwtjMgsVgiRkQ==
-----END PUBLIC KEY-----Private Key (PEM format):
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBG0wawIBAQQg+5SVAPfUpskiT/MB
JoqsPBO6r7nGbheDqO0q2GPJLXahRANCAAQAAgSFfgoaALMOyEDUrtIFnpIZJlt2
O8A0OWq4RFtkoFca9rz41Rf1rrkJ3EONMpYIV21JlZQZbC2MyCxWCJGR
-----END PRIVATE KEY-----加密后的密文:
hexdump -C data.bin
00000000  30 81 80 02 21 00 a4 79  b0 28 98 6a a8 00 34 60  |0...!..y.(.j..4`|
00000010  ee c2 2e 06 9c 14 54 1c  67 ff f0 47 6a d0 01 5d  |......T.g..Gj..]|
00000020  0b 46 15 eb d0 47 02 21  00 a9 cd f8 4e 3b 2a 12  |.F...G.!....N;*.|
00000030  7e 9f 66 c7 cb 75 35 79  99 7e a1 f4 14 7d 5b e7  |~.f..u5y.~...}[.|
00000040  b6 7f 78 cf 41 ec ca e6  ed 04 20 94 a2 29 79 5b  |..x.A..... ..)y[|
00000050  cc e9 4c 75 c6 27 e6 cb  1d 06 be 52 e0 39 d5 61  |..Lu.'.....R.9.a|
00000060  a6 ee 1e fe fe 78 94 00  16 15 d0 04 16 61 38 e3  |.....x.......a8.|
00000070  5c cc 88 4a b7 dd f0 e2  2f 10 4a 85 a5 c7 3c 8d  |\..J..../.J...<.|
00000080  28 c3 21                                          |(.!|
00000083

暂时没有解决自定义SM2 ID问题!


http://www.ppmy.cn/embedded/164363.html

相关文章

云服务中的“高可用性架构”是怎样的?

在云计算中&#xff0c;“高可用性架构”&#xff08;High Availability Architecture&#xff0c;简称HA架构&#xff09;是指通过设计和配置&#xff0c;使得系统、服务或应用能够在发生硬件故障、软件故障、网络问题等情况下&#xff0c;依然保持正常运行&#xff0c;最大程…

最多提取字串

最多提取字串 真题目录: 点击去查看 E 卷 100分题型 题目描述 给定 [a-z],26个英文字母小写字符串组成的字符串 A 和 B,其中 A 可能存在重复字母,B 不会存在重复字母,现从字符串 A 中按规则挑选一些字母,可以组成字符串B。 挑选规则如下: 同一个位置的字母只能挑选一次…

网络安全入门防御与加固(三)

加密与认证 1 SSL/TLS证书配置&#xff08;Lets Encrypt&#xff09; &#xff08;1&#xff09;为什么需要HTTPS&#xff1f; 作用&#xff1a;加密客户端与服务器之间的通信&#xff0c;防止数据窃听、篡改和中间人攻击。 免费证书&#xff1a;Lets Encrypt 提供自动化、免…

编程技巧(基于STM32)第一章 定时器实现非阻塞式程序——按键控制LED灯闪烁模式

参考教程&#xff1a;[编程技巧] 第1期 定时器实现非阻塞式程序 按键控制LED闪烁模式_哔哩哔哩_bilibili 一、实验前信息储备 1、程序功能与要求 &#xff08;1&#xff09;程序功能&#xff1a;两个按键分别控制两个LED灯的闪烁模式&#xff0c;每按下1个按键&#xff0c;对…

uCOSIII学习

一、uCOS移植 1.移植 C/OS-III前&#xff0c;需要获取C/OS-III 的源代码&#xff0c;C/CPU 和 C/LIB 这两个组件的源代码。 2.将获取的uCOSIII源代码添加到工程文件中&#xff1a; ①.uC-CPU/ARM-Cortex-M/ARMv7-M/ARM/cpu_a.asm、uC-CPU\ARM-Cortex-M\ARMv7-M\cpu_c.c 和 uC-…

Linux-Ansible自动化运维

文章目录 自动化运维Ansible &#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;Linux专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2025年02月21日17点38分 自动化运维 自动化运维常用工具 Ansible 和 SaltStack 自动化运维优势&#xff1a; 服…

5kw离网光伏逆变器的仿真设计

2.1 系统整体方案 在本次5KW离网光伏逆变器设计中&#xff0c;拟围绕单相逆变器的设计而展开&#xff0c;由于太阳能板本身的能量输出受到负载影响&#xff0c;因此需要在太阳能板后面加入一级DC/DC电路&#xff0c;来实现最大功率跟踪&#xff0c;以提高整个系统的效率。接着…

C++ Primer 文件输入输出

欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…