主页 > 开源代码  > 

Openssl之SM2加解密命令

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问题!

标签:

Openssl之SM2加解密命令由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Openssl之SM2加解密命令