前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux下基于openssl实现数字签名

Linux下基于openssl实现数字签名

作者头像
程序员小涛
发布2020-12-03 11:32:47
4K0
发布2020-12-03 11:32:47
举报
文章被收录于专栏:涛的程序人生涛的程序人生

1、编辑原文件src.txt

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

代码语言:javascript
复制
echo "This is a digital signature example." > src.txt

2、创建私钥

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

3、导出公钥

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

4、私钥签名

代码语言:javascript
复制
#产生签名文件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传输给接收者,接收者模拟校验操作。

代码语言:javascript
复制
openssl dgst -sha256 -keyform PEM -verify key.pub -signature src.sig src.txt

若显示:Verified OK

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

则表示用公钥校验签名文件是正常的,即接收到的原文件是无篡改和可信的。

若显示:Verification Failure

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

则表示接收到的文件有篡改或不可信的。

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-02-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、编辑原文件src.txt
  • 2、创建私钥
    • a、创建私钥:
      • b、查看私钥:
      • 3、导出公钥
        • a、导出公钥
          • b、查看公钥
          • 4、私钥签名
          • 5、公钥校验
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档