MAC生成公钥私钥、PKCS1 转 PKCS8

1、在本地创建文件夹rsa,并进入文件夹

cd /jokki/rsa

2、终端输入命令openssl打开工具

3、生成RSA私钥

genrsa -out rsa_private_key.pem 1024

OpenSSL> genrsa -out rsa_private_key.pem 1024
Generating RSA private key, 1024 bit long modulus
...............++++++
..................++++++
e is 65537 (0x10001)
OpenSSL> 

此时我们就可以在rsa文件夹中看到rsa_private_key.pem文件了。

4、转换秘钥格式,把RSA私钥PKCS1转换成PKCS8格式

        

//如果需要要pkcs1 这一步骤可以不执行

pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM –nocrypt

OpenSSL> pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt 
-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALsVZ/kunGMqLKa1
ZLtFH+bx+i08yKKbcbwKGZ45n6isGXHgVmMqyF2N/RYHf8u3qL+dSAf7TKJ3rl49
jPGlUUZHwccIlLqQ7CSIcwSRPH0ZbrPffxlWITTJUHKBDnWLZzLBZzaMj5mgmbSN
XLmG++1YcjWG0S8oxBTvKVxPHWU/AgMBAAECgYEAtVfMjweVY7Iv0fCmkbgxckVA
AbWXrbcLigAoUOz+TBt2FqIkWr/PtI+7sSzXvXprQkGM3t/CqwFjrcnv4xQiMFpZ
ILV5v0rmwdZenVFEMD46muDhUzERQNryfCdSXAdLGeOlftMcfmudRwX/6v4Vd59b
OCYUvp95kzv9jP4UEKECQQDrgbtEFro4i6+5NxTq+kQU13PQ5Nhqov3EY70Yx+l/
fuKnefOJ2btY7eyd6uHJ6R61kkVtLUl+DLZ8Ah0JE7/nAkEAy1z520JM1D75LWbY
4Zy8K+9QY1dhzUaDw0f2zfA/Gh7GiRKLQ2Z3USRyuR5bP6Fssxh0Vp3CyJvf3bUT
4bbk6QJAdXtpJMVFrnGYfofIypOAJPl50AppH4EhoLe0nEkV5UEx5iQC5pCUUf+W
mwySCDxf0moeciE2WUgUPHZ9b4rHnwJAKwOhfbUKVyJyxh2o5h+m1Ywq7rg+4ZJ2
sEl6dJjKYBX+XGPlvP3hYvJYqbs4Bb95JHCZuvBnkNMXiOeSKv3qcQJANgkCgzxN
xM/4byx54KOVc2XTuXBD1GyeiRVdDShmFn1tPElZ9w3RVIC/chWZ1g2QvWnqsb6a
653pkG7Cs138Ng==
-----END PRIVATE KEY-----
OpenSSL> 

注意:
很多同学执行这个命令的时候会报下面的错误,首先查看命令是否输入正确,如果命令正确还是提示错误,可以删除之前的私钥,重新生成,再执行此命令

OpenSSL> pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM –nocrypt
unknown option '–nocrypt'
usage: pkcs8 [-embed] [-in file] [-inform fmt] [-nocrypt]
    [-noiter] [-nooct] [-nsdb] [-out file] [-outform fmt] [-passin src]
    [-passout src] [-topk8] [-v1 alg] [-v2 alg]

 -embed             Generate DSA keys in a broken format
 -in file           Input file (default stdin)
 -inform format     Input format (DER or PEM (default))
 -nocrypt           Use or expect unencrypted private key
 -noiter            Use 1 as iteration count
 -nooct             Generate RSA keys in a broken format (no octet)
 -nsdb              Generate DSA keys in the broken Netscape DB format
 -out file          Output file (default stdout)
 -outform format    Output format (DER or PEM (default))
 -passin source     Input file passphrase source
 -passout source    Output file passphrase source
 -topk8             Read traditional format key and write PKCS#8 format key
 -v1 algorithm      Use PKCS#5 v1.5 or PKCS#12 with given algorithm
 -v2 cipher         Use PKCS#5 v2.0 with given cipher
error in pkcs8

5、生成RSA公钥

rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

OpenSSL> rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem 
writing RSA key
OpenSSL> 

6、exit退出

7、这时我们到文件夹中便能看到生成的两个文件,如果想查看文件内容,将里面的.pem文件改为txt文件就可以查看里面的内容了

不生成pkcs1 就直接会生成两个

image.png

注意:

你在mac上生成的可能是PKCS#1格式,网上很多算法是基于PKCS#8的,需要进行转换,或者换openssl版本(支付宝是pkcs#8格式)



作者:上善丨若水
链接:https://www.jianshu.com/p/6cf6059be18d
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

猜你喜欢

转载自blog.csdn.net/qiuziqiqi/article/details/121799005
今日推荐