首页 > 其他分享 >利用openssl生成SM2公私钥对

利用openssl生成SM2公私钥对

时间:2024-03-17 21:11:58浏览次数:44  
标签:SM2 param openssl pem 钥对 ec

 

 

openssl 1.1.1+ 版本增加了对SM2 的支持,所以我们就能直接使用这些版本的opsnssl 生成 SM2的公私钥对。

首先我们得在Linux 或者Windows服务器中安装对应版本的openssl库,具体过程略。软件包请到官网下载:https://www.openssl.org/

安装完成后,使用下列命令查看该版本的openssl 是否支持SM2参数:

openssl ecparam -list_curves | grep SM2

如果查询结果有内容,则说明该版本支持SM2参数,也就可以生成SM2的公私钥对。

在安装了正确版本的openssl之后,下面就是利用openssl自带的命令生成SM2公私钥对了:

1.创建EC参数和原始私钥文件:
openssl ecparam -out ec_param.pem -name SM2 -param_enc explicit -genkey
注:生成完成后可以查看一下EC私钥信息:
openssl ecparam -in ec_param.pem -text
然后验证一下参数:
openssl ecparam -in ec_param.pem -check
2.将原始的私钥文件,转换为pkcs8格式:
openssl pkcs8 -topk8 -inform PEM -in ec_param.pem -outform pem -nocrypt -out pri_key_pkcs8.pem
3.利用原始的私钥,生成对应的公钥:
openssl ec -in ec_param.pem -pubout -out pub_key.pem
至此SM2的秘钥对已经生成结束,pri_key_pkcs8.pem是SM2私钥,而pub_key.pem是公钥。

   

标签:SM2,param,openssl,pem,钥对,ec
From: https://www.cnblogs.com/exmyth/p/18079186

相关文章

  • 安装openssl
    安装路径 点击EXE后等待下载完 建议,不要拷贝到系统目录下,如果其他软件使用的OpenSSL版本与你安装这个版本不同,可能导致该软件无法使用。所以让这些dll待在OpenSSL安装目录下即可。然后点击Install就可以了,最后一步,是否捐款,看个人情况,全取消就是不捐安装完毕接下来是配......
  • php使用openssl生成公钥私钥
    1、确保你的PHP环境已经启用了OpenSSL扩展$config=array("digest_alg"=>"sha1","private_key_bits"=>1024,"private_key_type"=>OPENSSL_KEYTYPE_RSA,"config"=>�......
  • [密码学]OpenSSL实践篇
    背景最近在写Androidabl阶段fastboot工具,需要我在Android代码中实现一些鉴权加解密相关的fastboot命令,里面用到了OpenSSL。我们先来实践一下OpenSSL在Linux系统中的指令。OpenSSL官方网站:OpenSSL中文手册|OpenSSL中文网1.查看openssl版本opensslversion#完整版......
  • 编译opencapwap 编译环境加密库openssl版本调整
    1、删除原来版本:sudoapt-getremovelibssl1.0-devlibssl-dev删除链接:删除/bin/openssl2、下载版本wget--no-check-certificatehttps://www.openssl.org/source/old/1.0.0/openssl-1.0.0.tar.gz解压安装:tar-xzvf./openssl-OpenSSL_1_0_2t.tar.gzcdopenssl-OpenSSL......
  • 利用GmSSL制作SM2国密证书
    Part0前言     GmSSL是一个开源的密码工具箱,支持SM2/SM3/SM4/SM9/ZUC等国密(国家商用密码)算法、SM2国密数字证书及基于SM2证书的SSL/TLS安全通信协议,支持国密硬件密码设备,提供符合国密规范的编程接口与命令行工具,可以用于构建PKI/CA、安全通信、数据加密等符合国密标准......
  • Java SM2 工具类,依赖bcprov-jdk15on
    老版本bcprov-jdk15on和新版本的有点不一样,新版本的签名后需要DER格式和r|s格式转换,可以和老版本一样<dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>1.70</version></dependency>import......
  • openssl 生成证书 server.key server.crt
    为了https,做一个免费的证书。x509证书一般会用到三类文,key,csr,crt。Key是私用密钥,通常是rsa算法。Csr是证书请求文件,用于申请证书。在制作csr文件的时,必须使用自己的私钥来签署申,还可以设定一个密钥。crt是CA认证后的证书文,(windows下面的,其实是crt),签署人用自己的key给你签署......
  • QT使用OpenSSL的接口实现RSA2的签名和验签
    QT使用OpenSSL的接口实现RSA2的签名和验签加密和签名在RSA加密算法中是两个不同的概念,虽然它们都涉及RSA密钥对的使用,但目的和应用场景有所不同。加密(encrypt/decrypt):加密:使用接收方的公钥对数据进行加密,只有拥有相应私钥的接收方才能解密数据。解密:使用接收方的私钥对......
  • openssh漏洞修复之升级openssh与openssl
    下载Openssh和Opensslwgetftp://mirrors.sonic.net/pub/OpenBSD/OpenSSH/portable/wgethttps://www.openssl.org/source/openssl-1.1.1h.tar.gz安装Openssltar-zxfopenssl-1.1.1h.tar.gzcdopenssl-1.1.1h./config--prefix=/usr/local/openssl-1.1.1-dsharedmake......
  • openssl pkcs12 -info -in certificate.pfx
    通用名称(CommonName):也称为主题名称(SubjectName),是证书中代表个人身份的主要标识。通常会包含个人的姓名或特定名称。组织(Organization):证书中列出的个人所属的组织或单位名称。部门(Department):可选字段,用于指定个人所属的部门或单位的名称。城市(City):个人所在城市的名称......