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

Openssl之SM2加解密命令

### 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://g26D6QWy.ydytt.cn
http://42eyKe4r.ydytt.cn
http://gGYMx3Qt.ydytt.cn
http://bmm3uuWC.ydytt.cn
http://HSqD4QuA.ydytt.cn
http://hQq2D61v.ydytt.cn
http://8KHZkzXK.ydytt.cn
http://PF8aiabL.ydytt.cn
http://td3phkQs.ydytt.cn
http://J5S2wlei.ydytt.cn
http://jZPukhvo.ydytt.cn
http://XCYG3JGI.ydytt.cn
http://XV0Qlwql.ydytt.cn
http://aYReaBvZ.ydytt.cn
http://EdqEKP7l.ydytt.cn
http://NNKOSrmV.ydytt.cn
http://mzbkuDiK.ydytt.cn
http://CNBY9w5X.ydytt.cn
http://x6mQIexJ.ydytt.cn
http://HNbxalB0.ydytt.cn
http://GN0I3Dki.ydytt.cn
http://DalFBwdM.ydytt.cn
http://H1fVIIKE.ydytt.cn
http://P0XJNw5T.ydytt.cn
http://R21Gxct4.ydytt.cn
http://3uz4AanV.ydytt.cn
http://GWRAKvxw.ydytt.cn
http://TUN6q1A0.ydytt.cn
http://KUBBmTsI.ydytt.cn
http://PvLj0aaP.ydytt.cn
http://www.dtcms.com/a/28596.html

相关文章:

  • 【个人记录】openEuler安装K3S并配置为GPU节点
  • python高效使用06_while_True和while_1哪个效率更高
  • OpenCV形态学操作
  • Windows 10事件查看器
  • PINN求解一维burgers方程
  • 【AB-01】 AUTOSAR Builder软件安装
  • C++:从拷贝构造函数到深浅拷贝
  • 如何修改Windows系统Ollama模型存储位置
  • 第三章 组件(7)- 布局与Sections
  • Java——面向对象编程
  • 使用多态来替换条件语句
  • 【嵌入式Linux应用开发基础】进程间通信(3):共享内存
  • 遗传算法与深度学习实战系列,自动调优深度神经网络和机器学习的超参数
  • 完美转发使用
  • 现代任务调度系统架构深度解析——以TaskSchedulerController为核心的弹性任务管理方案
  • Spring AI集成Ollama调用本地大模型DeepSeek
  • Spring AOP
  • langflow中添加Siliconflow组件
  • 拆解微软CEO纳德拉战略蓝图:AI、量子计算、游戏革命如何改写未来规则!
  • DAY01-如何合理配置线程池的核心参数
  • 【机器学习】衡量线性回归算法最好的指标:R Squared
  • js中常用方法整理
  • 动态库和静态库(Linux环境)
  • TOGAF之架构标准规范-信息系统架构 | 应用架构
  • Leetcode2595:奇偶位数
  • 纯手工搭建整套CI/CD流水线指南
  • 基于深度学习进行呼吸音检测的详细示例
  • 物联网简介集合
  • 数电笔记——第一章 数制和码制
  • 基于 Flask 与 MySQL 构建简单的博客系统