已知sm2公钥字符串,如何生成pem
时间: 2023-11-27 20:12:51 浏览: 268
如果你已经有一个 SM2 公钥的字符串表示,你可以按照以下步骤将其转换为 PEM 格式:
1. 将公钥字符串保存到文件 `sm2.pub` 中。
2. 使用 OpenSSL 命令将 `sm2.pub` 文件转换为 PEM 格式:
```
openssl ec -inform DER -in sm2.pub -pubin -outform PEM -out sm2.pub.pem
```
这个命令将会把 DER 格式的公钥文件 `sm2.pub` 转换为 PEM 格式的公钥文件 `sm2.pub.pem`。
3. 删除 `sm2.pub` 文件:
```
rm sm2.pub
```
这样,你就可以得到一个 PEM 格式的 SM2 公钥文件 `sm2.pub.pem`,你可以用这个文件进行 SM2 加密、验签等操作。
相关问题
如何使用openssl对sm2公钥字符串生成pem证书
要使用 OpenSSL 对 SM2 公钥字符串生成 PEM 证书,可以按照以下步骤进行操作:
1. 将 SM2 公钥字符串保存为文件,例如 `public.key`。
2. 执行如下命令将公钥转换为 PEM 格式:
```bash
openssl ec -inform der -in public.key -pubout -outform pem -out public.pem
```
这里的 `public.key` 是保存 SM2 公钥字符串的文件,`public.pem` 是生成的 PEM 证书文件。
如果你的 SM2 公钥字符串是 Base64 编码的,可以先将其解码为二进制格式再进行转换:
```bash
openssl ec -inform der -in <(echo -n 'base64-encoded-public-key' | base64 -d) -pubout -outform pem -out public.pem
```
这里的 `base64-encoded-public-key` 是 Base64 编码的 SM2 公钥字符串。
3. 执行完上述命令后,你会得到一个 PEM 格式的证书文件 `public.pem`,其中包含了 SM2 公钥。你可以使用文本编辑器打开该文件,查看公钥的信息,例如:
```
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAE3XHv9vK3ifxXxhWwKv5dOuJdO2J
7gJ8/ji4nE5I3xVzLwT8c8Tzov2c5zT9fF1SD2ZuGJj1GZ8B0dH+6mvpUw==
-----END PUBLIC KEY-----
```
其中 `MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAE3XHv9vK3ifxXxhWwKv5dOuJdO2J7gJ8/ji4nE5I3xVzLwT8c8Tzov2c5zT9fF1SD2ZuGJj1GZ8B0dH+6mvpUw==` 就是 SM2 公钥的 Base64 编码表示。
已知sm2公钥,如何生成pem文件
如果已知 SM2 公钥,可以通过以下步骤生成 PEM 证书文件:
1. 将 SM2 公钥转换为 DER 编码格式:
```
openssl asn1parse -genconf <(printf "[oid_secp256k1]\n 1.2.840.10045.3.1.7\n[oid_prime256v1]\n 1.2.840.10045.3.1.7\n[oid_sm2]\n 1.2.156.10197.1.301\n[req]\nreq_extensions = req_ext\n[req_ext]\nsubjectAltName = @alt_names\nkeyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment, keyAgreement\nbasicConstraints = CA:false\n[alt_names]\nDNS.0 = localhost\n" ) -out sm2_pubkey.der -noout -encode i2d "PUBLICKEY" -in sm2_pubkey.der
```
将上述命令中的 `sm2_pubkey.der` 替换为 SM2 公钥文件的路径。
2. 将 DER 编码格式的公钥转换为 PEM 格式:
```
openssl ec -inform der -in sm2_pubkey.der -pubin -outform pem -out sm2_pubkey.pem
```
该命令将从 DER 编码格式的 SM2 公钥中提取公钥,然后将其转换为 PEM 格式,并将其保存到 `sm2_pubkey.pem` 文件中。
现在,你已经生成了一个包含 SM2 公钥的 PEM 证书文件 `sm2_pubkey.pem`。
阅读全文