Linux下基于openssl实现数字签名

1、编辑原文件src.txt

创建原文件src.txt(也可以是任意类型的文件),这里仅作演示,输入命令:

echo "This is a digital signature example." > src.txt

2、创建私钥

a、创建私钥:
#RSA加密算法产生的2048位私钥,并使用F4作为公钥的E参数,将私钥保存在文件key.pri中
openssl genrsa -out key.pri -f4 2048
b、查看私钥:
#以PEM格式显示私钥的明文输出密钥参数
openssl rsa -inform PEM -in key.pri -text

3、导出公钥

a、导出公钥
#用rsa的私钥文件key.pri导出PEM格式的公钥,保存在文件key.pub中
openssl rsa -inform PEM -outform PEM -in key.pri -out key.pub -pubout
b、查看公钥
openssl rsa -inform PEM -in key.pub -pubin -text

4、私钥签名

#产生签名文件src.sig
openssl dgst -sha256 -out src.sig -sign key.pri -keyform PEM src.txt

#查看签名文件
od -v -An -tx1 src.sig 

5、公钥校验

发送者将原文件src.txt、公钥文件key.pub和签名文件src.sig传输给接收者,接收者模拟校验操作。

openssl dgst -sha256 -keyform PEM -verify key.pub -signature src.sig src.txt

若显示:Verified OK
在这里插入图片描述
则表示用公钥校验签名文件是正常的,即接收到的原文件是无篡改和可信的。

若显示:Verification Failure
在这里插入图片描述
则表示接收到的文件有篡改或不可信的。

(本文改自教育教学论坛论文:基于Linux下数字签名技术的实现)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值