深入浅出HTTPS(openssl基本使用)

深入浅出HTTPS(openssl基本使用)

查看系统支持那些加密算法

openssl list -cipher-algorithms

在这里插入图片描述
简单介绍下AES-256-CBC的概念,其他算法本章后续会有描述,AES-256-CBC算法标准表示采用AES算法,密钥长度是256比特,分组模式是CBC。

AES-256-CBC加解密

#生成明文文件
echo qwertyuiopasdfghjklzxcvbnm > file.txt
#执行加密
openssl enc -aes-256-cbc -salt -in file.txt -out file.enc -pass pass:123456 -p -pbkdf2
#-in表示从文件中读出明文内容。
#-out表示将加密内容保存到某个文件中。
#-aes-256-cbc表示加密算法和标准。
#-p参数是打印本次加密过程中salt、密钥、初始化向量的值。
# -pbkdf2 pbkdf2算法
#AES算法使用的密钥通过口令和Salt生成,同样的口令和Salt会生成同样的密钥。
#Salt的主要作用是为了保证同样的口令可以生成不同的密钥,是明文传输的。

#解密
openssl enc -d -pbkdf2 -aes-256-cbc -in file.enc -pass pass:123456


#自定义向量值和密钥
#加密
openssl enc -aes-256-cbc -in file.txt -out file2.enc -iv D607070EF54605A93703F10EC68588F4 -K 1A13ADFA51B05CC8B451BCFC855C8247B348DB637B806CBDD43B91525ED12E46 -pass pass:123456 -p -pbkdf2
#解密
openssl enc -aes-256-cbc -in file2.enc -d -iv D607070EF54605A93703F10EC68588F4 -K 1A13ADFA51B05CC8B451BCFC855C8247B348DB637B806CBDD43B91525ED12E46 -pass pass:123456  -pbkdf2

在这里插入图片描述
在这里插入图片描述

MAC算法

#生成mac的摘要值
openssl dgst -sha1 -hmac "123456" file.txt

RSA算法实践

# 生成密钥对.长度为2048
openssl genrsa -out mykey.pem 2048
# 3DES算法保护密钥对
openssl genrsa -des3 -passout pass:123456 -out mykey2.pem 2048
# 分离密钥对(分离出公钥)
openssl rsa -in mykey.pem -pubout -out publickey.pem
# 分离密钥对(分离出公钥) 3DES版
openssl rsa  -in mykey2.pem -pubout -out publickey2.pem
#公钥一般是要发送给发送者的,所以需要从密钥对中分离出公钥,-pubout参数表示输出一个公钥文件。
#检验文件是否正确
openssl rsa -in mykey.pem -check -noout
#-noout参数表示不打印密钥对信息,如果校验成功,说明密钥对文件无误。
#显示公钥信息
openssl rsa -pubin -in publickey.pem -text -out  publickey.txt

在这里插入图片描述
其中Public-Key表示密钥的长度。Modulus的值表示公开密钥系数,就是RSA结构中的n。Exponent的值表示公钥,就是RSA结构中的e。-----BEGIN PUBLIC KEY-----和-----END PUBLIC KEY-----之间表示公钥具体的值。

#使用rsautl子命令进行数据加解和解密
echo "hello world!" > plain.txt
#加密
openssl rsautl -encrypt -inkey mykey.pem -in plain.txt -out cipher.txt
#解密
openssl rsautl -decrypt -inkey mykey.pem  -in cipher.txt

在这里插入图片描述

RSA数字签名实践

# 生成RSA密钥对 长度为2048
openssl genrsa -out mykey.pem 2048
#分离出公钥
openssl rsa -in mykey.pem  -pubout -out public.pem
echo "hello world!" > test.txt
# OpenSSL命令行进行签名的时候默认使用的是RSAES-PKCS1-V1_5填充标准,也可以指定RSASSA-PSS标准。
# openssl dgst -sha256 -sign mykey.pem -sigopt rsa_padding_mode:pss -out signature2.txt test.txt
# 对test.txt文件使用sha256 Hash算法和签名算法生成签名文件signature.txt
openssl dgst -sha256 -sign mykey.pem -out signature.txt test.txt
#校验
#openssl dgst -sha256 -verify public.pem -sigopt rsa_padding_mode:pss -signature signature2.txt test.txt
openssl dgst -sha256 -verify public.pem -signature signature.txt  test.txt

在这里插入图片描述

自签名证书

#生成私钥对和CSR
openssl req -newkey rsa:2048-nodes -keyout server_key.pem -out ca_csr.pen -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=mofei/OU=mofei/CN=www.ffcc.com" -passout pass:123456
#生成自签名证书
openssl x509 -signkey server_key.pem -in ca_csr.pen -req -days 3650 -out cert.pem -passin pass:123456
#-signkey表示密钥对文件,-in表示CSR文件,-days表示证书有效期,-out表示最终的证书文件。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值