关于openssl 的几个key的生成方式

本文详细介绍了使用RSA算法进行加密解密的全过程,包括私钥和公钥的生成、转换,证书请求和签名,以及文件的加密解密操作。同时,还提供了二进制文件与Base64编码之间的转换方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

生成一个1024位的私钥文件rsa_private_key.pem :

openssl  genrsa -out rsa_private_key.pem 1024

从私钥中提取公钥rsa_public_key.pem:

openssl  rsa -in rsa_private_key.pem -out rsa_public_key.pem -outform PEM -pubout

将私钥转换成 DER 格式:

openssl rsa -in rsa_private_key.pem -out rsa_private_key.der -outform der

将公钥转换成 DER 格式:

openssl rsa -in rsa_public_key.pem -out rsa_public_key.der -pubin -outform der

把RSA私钥转换成PKCS8格式:

openssl pkcs8 -topk8 -in rsa_private_key.pem -out pkcs8_rsa_private_key.pem -nocrypt

从私钥创建公钥证书请求:

openssl req -new -key rsa_private_key.pem -out rsa_public_key.csr

生成证书并签名(有效期10年):

openssl x509 -req -days 3650 -in rsa_public_key.csr -signkey rsa_private_key.pem -out rsa_public_key.crt

把crt证书转换为der格式:

openssl x509 -outform der -in rsa_public_key.crt -out rsa_public_key.der

把crt证书生成私钥p12文件:

openssl pkcs12 -export -out rsa_private_key.p12 -inkey rsa_private_key.pem -in rsa_public_key.crt

对vmlinuz-initrd-7260a0进行签名:

openssl dgst -sha256 -sign private_key.pem -out vmlinuz-initrd-7260a0.sign vmlinuz-initrd-7260a0

对vmlinuz-initrd-7260a0+vmlinuz-initrd-7260a0.sign进行校验:

openssl dgst -sha256 -verify public_key.pem -signature vmlinuz-initrd-7260a0.sign vmlinuz-initrd-7260a0

我在目录中创建一个hello的文本文件,然后利用此前生成的公钥加密文件:

openssl rsautl -encrypt -in hello -inkey test_pub.key -pubin -out hello.en

-in指定要加密的文件,-inkey指定密钥,-pubin表明是用纯公钥文件加密,-out为加密后的文件。
解密文件:

openssl rsautl -decrypt -in hello.en -inkey test.key -out hello.de

-in指定被加密的文件,-inkey指定私钥文件,-out为解密后的文件。

二进制文件与base64编码互转

openssl base64 -in pubkey.bin -out pubkey.pem
openssl base64 -d -in pubkey.pem -out pubkey.bin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值