windows下OpenSSL的使用

本文详细介绍了OpenSSL的使用,包括如何生成和查看RSA密钥,以及如何利用这些密钥进行文件的加解密。此外,还讲解了证书的相关概念,如CA、证书格式和编码方式。通过实例演示了使用OpenSSL命令行工具进行AES加密和RSA加密解密的操作步骤。
摘要由CSDN通过智能技术生成

OpenSSL的使用

一、打开openssl

二、名词解释

  • 什么是CA?
    CA就相当于一个认证机构,只要经过这个机构签名的证书我们就可以当做是可信任的。我们的浏览器中,已经被写入了默认的CA根证书。
  • 什么是证书?
    证书就是将我们的公钥和相关信息写入一个文件,CA用它们的私钥对我们的公钥和相关信息进行签名后,将签名信息也写入这个文件后生成的一个文件。
  • 证书格式(是一种标准):
    x509 这种证书只有公钥,不包含私钥。
    pcks#7 这种主要是用于签名或者加密。
    pcks#12 这种含有私钥,同时也含有公钥,但是有口令保护。
  • 编码方式:
    .pem 后缀的证书都是base64编码
    .der 后缀的证书都是二进制格式
  • 证书:
    .csr 后缀的文件是用于向ca申请签名的请求文件
    .crt .cer 后缀的文件都是证书文件(编码方式不一定,有可能是.pem,也有可能是.der)
  • 私钥:
    .key 后缀的文件是私钥文件

三、查看OpenSSL版本和编译参数

命令行输入:

version -a 

Snipaste_2021-08-12_16-48-11.png

四、RSA密钥操作

4.1、生成RSA私钥:

genrsa -out rsa_private_key.pem 1024

Snipaste_2021-08-12_16-52-11.png

生成一个名为rsa_private_key.pem文件,用写字板或记事本打开即可,该文件在bin目录下,其中1024是私钥的长度,也可以生成2048等其他长度的私钥。
(注:OpenSSL 使用 PEM 文件格式存储证书和密钥。PEM 实质上是 Base64 编码的二进制内容,再加上开始和结束行,如证书文件的
-----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE-----)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A6u1yy0f-1640760972690)(https://i.loli.net/2021/08/12/KpQlDvfXe7yPjYr.png)]

打开rsa_private_key.pem文件,内容如下:

Snipaste_2021-08-12_16-54-01.png

begin和end之间的为密钥

若运行时没有使用管理员身份打开,会出现 “ unable to write ‘random state’ ”错误

4.2、查看私钥内容:

rsa -in rsa_private_key.pem -text -noout

Snipaste_2021-08-12_16-55-46.png

4.3、利用私钥生成公钥:

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

Snipaste_2021-08-12_16-59-07.png

4.4、查看公钥内容

  • 读取公钥内容:
rsa -pubin -in rsa_public_key.pem 

Snipaste_2021-08-12_16-59-07.png

  • 以文本格式输出公钥内容:
rsa -pubin -in rsa_public_key.pem -text

Snipaste_2021-08-12_16-59-58.png

  • 不输出公钥内容
rsa -pubin -in rsa_public_key.pem -text -noout

Snipaste_2021-08-12_16-55-46.png

五、使用OpenSSL进行文件的加解密

使用OpenSSL命令行进行文件加解密主要有两种方式

5.1、使用密码方式加密或者解密文件

(直接对文件进行加解密)

  • 加密一个文件
 enc -e -aes256 -in sudo.txt -out back.txt

(sudo.txt是加密前的文件,back.txt是加密后的文件,也可以加密Zip、doc等其他形式的文件)
解释: enc 表示对文件进行对称加密或解密, -e 表示对一个文件进行加密操作,-aes256 表示使用 aes256 算法进行加密,也可以是base64等加密方式,-in 表示需要被加密的文件,-out 表示加密之后生成的新文件。加密过程中会要求输入一个加密密码,重复输入两次即可完成对文件的加密。注意:输入密码的时候屏幕上没有任何显示,回车,会提示再次输入。输完后回车。

Snipaste_2021-08-12_17-05-46.png

  • 解密一个文件
 enc -d -aes256 -in back.txt -out data.txt

(back.txt是加密的文件,data.txt是解密之后的文件)
解释: enc 表示对文件进行对称加密或解密, -d 表示对文件进行解密操作,-aes256 表示使用 aes256 算法进行解密,-in 表示需要被解密的文件,-out 表示解密之后生成的新文件,解密一个文件的时候会要求输入加密文件时设置的密码才能进行解密。

5.2、使用密钥方式加密或者解密文件

(先生成密钥,再加密)
(文件为上文生成的含有密钥的.pem文件)

  • 使用 rsa_public_key.pem 公钥加密一个文件 (data.txt 为原始文件,test.txt 为加密之后的文件)
rsautl -encrypt -inkey rsa_public_key.pem -pubin -in data.txt -out test.txt

Snipaste_2021-08-12_17-09-34.png

  • 使用 rsa_private_key.pem 私钥解密一个文件 (back.txt 为加密的文件,demo.txt 为解密之后的文件)
rsautl -decrypt -inkey  rsa_private_key.pem -in test.txt -out demo.txt

Snipaste_2021-08-12_17-12-33.png

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值