Java教程

OpenSSL数字签名实验

本文主要是介绍OpenSSL数字签名实验,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

(一)实验目的

通过实验理解数字摘要、数字签名原理与应用

补充:# 用SHA1算法计算文件file.txt的哈西值,输出到stdout

openssl dgst -sha1 file.txt
# 用SHA1算法计算文件file.txt的哈西值,输出到文件digest.txt
openssl sha1 -out digest.txt file.txt

用DES3算法的CBC模式加密文件plaintext.doc,
# 加密结果输出到文件ciphertext.bin
openssl enc -des3 -salt -in plaintext.doc -out ciphertext.bin

 

# RSA
# 产生1024位RSA私匙,用3DES加密它,口令为trousers,
# 输出到文件rsaprivatekey.pem
openssl genrsa -out rsaprivatekey.pem -passout pass:trousers -des3 1024
# 从文件rsaprivatekey.pem读取私匙,用口令trousers解密,
# 生成的公钥匙输出到文件rsapublickey.pem
openssl rsa -in rsaprivatekey.pem -passin pass:trousers -pubout -out rsapubckey.pem
# 用公钥匙rsapublickey.pem加密文件plain.txt,
# 输出到文件cipher.txt
 openssl rsautl -encrypt -pubin -inkey rsapublickey.pem -in plain.txt -out cipher.txt

(二)实验步骤

1. 创建明文文档plain.txt,写入内容。

 

 

 

 

2. (打开bin目录下的exe文件运行)计算plain.txt的哈希值,输出到文件digest.txt。

注意这个地方是sha1 =是数字1而不是字母L

 

 

 

 

 

 

3. 利用RSA算法对摘要进行签名。

(1)创建1024位的RSA私钥,写入文件rsaprivatekey.pem,同时用3DES加密,设置密码。

 

 

 

 

(2)从文件rsaprivatekey.pem中提取公钥,写入文件rsapublickey.pem.

 

 

 

 

(3)利用上述私钥对摘要digest.txt进行签名,生成签名文档signature.bin

 

 

4.对签名signature.bin进行公钥验证。

 

 

 两者进行对比:

 

这篇关于OpenSSL数字签名实验的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!