计算机网络实验之加密、数字签名与证书

一.实验内容

1.对称加密
2.散列函数
3.非对称加密
4.数字签名
5.证书

二.实验结果及分析

2.1 对称加密
(1)安装 OpenSSL:登录阿里云服务器,输入命令:“yum install openssl openssl-devel -y”,结果如下图所示,OpenSSL安装成功。
在这里插入图片描述
在这里插入图片描述

图2.1-1 安装OpenSSL

(2)创建lx.txt文件:输入“vi lx.txt”命令创建 lx.txt 文件,并写入“世事如书,我偏爱你这一句,愿做个逗号,待在你脚边。但你有自己的朗读者,而我只是个摆渡人”,然后输入命令“cat lx.txt” 查看 lx.txt 文件的内容。结果如下图所示:
在这里插入图片描述

图2.1-2 创建文件并写入内容的结果

(3)利用对称加密算法对lx.txt进行加密:输入“openssl enc -e -des -in lx.txt -out encrypt.txt -pass pass:666999”命 令,将 lx.txt 文件内容加密至 encrypt.txt 文件,输入“cat encrypt.txt”命令可查看加密后的内容。
在这里插入图片描述

图2.1-3 输入命令进行对称加密
在这里插入图片描述

图2.1-4 对称加密后的内容

(4)利用对称加密算法对lx.txt进行解密操作:输入“openssl enc -d -des -in encrypt.txt -out decrypt.txt -pass pass:666999” 命令,将 encrypt.txt 文件的内容解密至 decrypt.txt 文件,输入“cat decrypt.txt”命令可查看解密后的内容,结果如下图所示:
在这里插入图片描述

图2.1.5 解密

2.2 散列函数
(1)计算lx.txt的MD5散列值:输入“openssl md5 -out MD5.txt lx.txt”命令,再输入“cat MD5.txt”命令获取lx.txt 的MD5散列值——MD5(lx.txt)= 1e95c5673f5a8bda5b3101060c553f17。如下图所示:
在这里插入图片描述

图2.2-1 计算lx.txt的MD5散列值

(2)计算lx.txt的SHA256散列值:输入命令“openssl sha256 -out SHA256.txt lx.txt”,再输入命令“cat SHA256.txt” 即可获取 lx.txt 的 SHA256 散列值:42446b5fdf123b4ec47ea13b5207676bef7256b79db0a6d355226d1735f70419。
在这里插入图片描述

图2.2-2 计算lx.txt的SHA256散列值
2.3 非对称加密
(1)创建2048位的公钥密码体制RSA密钥对:首先输入命令“openssl genrsa -out private_key.pem 2048”,创建 2048 位的私钥。再输入命令“openssl rsa -in private_key.pem -pubout -out public_key.pem”,从而生成 2048 位的公钥密码体制 RSA 密钥对。
在这里插入图片描述

图2.3-1 创建 2048 位的私钥
在这里插入图片描述

图2.3-2 生成 2048 位的公钥密码体制 RSA 密钥对

(2)利用创建的公钥加密lx.txt:输入“openssl rsautl -encrypt -in lx.txt -inkey public_key.pem -pubin -out pb_lx.txt.encrypt”命令,加密 lx.txt 文件内容至 pb_lx.txt.encrypt 文件,输入“cat pb_lx.txt.encrypt”命令可查看加密后的内容。
在这里插入图片描述

图2.3-3 利用创建的公钥加密lx.txt

(3)私钥进行解密:输入“openssl rsautl -decrypt -in pb_lx.txt.encrypt -inkey private_key.pem -out pb_lx.txt.decrypt”命令,解密 pb_lx.txt.encrypt 文件内容至 pb_lx.txt.decrypt 文件, 输入“cat pb_lx.txt.decrypt”命令可查看解密后的内容
在这里插入图片描述

图2.3-4 私钥进行解密

2.4 数字签名
(1)对文件lx.txt进行数字签名:输入“openssl dgst -sha1 -sign private_key.pem -out pr_lx.txt.signed lx.txt” 命令,生成私钥签名。输入“cat pr_lx.txt.signed”命令查看文件的内容,结果如下图所示:
在这里插入图片描述

图2.4-1 对文件lx.txt进行数字签名

(2)鉴别:输入命令“openssl dgst -sha1 -verify public_key.pem -signature pr_lx.txt.signed lx.txt”,进行公钥验证签名。结果如下图所示:
在这里插入图片描述

图2.4-2 鉴别成功

2.5 证书
(1)创建根目录:输入命令“openssl genrsa -out rootCA.key 4096”。
在这里插入图片描述

图2.5-1 创建根目录

(2)创建并自签名根证书:输入命令:openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 365 -out rootCA.crt。
在这里插入图片描述

图2.5-2 创建并自签名根证书

(3)创建证书秘钥:输入命令“openssl genrsa -out Yho.com.key 4096”,结果如下图所示:
在这里插入图片描述

图2.5-3 创建证书密钥

(4)配置 certificate.conf 文件:输入命令“vi certificate.conf”,输入配置内容:
[req]
default_bits = 4096
prompt = no
req_extensions = req_ext
distinguished_name = dn
[dn]
C = CN
ST = Henan
L = nanyang
O = Yihao
OU =Yihao
emailAddress = [email protected]
CN = xxx.com
[req_ext]
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = xxx.com
IP.1 = 139.196.253.242
结果如图2.5-4所示。
在这里插入图片描述

(5)创建签名:输入命令 “ openssl req -new -key Yho.com.key -config certificate.conf -out Yhoo.com.csr”

在这里插入图片描述

图2.5-5 创建签名

图4.5-4 配置 certificate.conf 文件

(6)生成证书:输入命令:openssl x509 -req -in Yhoo.com.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out Yhoo.com.crt -days 365 -sha256 -extfile certificate.conf -extensions req_ext
在这里插入图片描述

图2.5-5 生成证书

3.注意事项

配置 certificate.conf 文件时,IP.1 = XXX是根据自己服务器来写的

猜你喜欢

转载自blog.csdn.net/m0_53788135/article/details/125518140
今日推荐