LINUX使用OpenSSL进行签名
Posted 柳鲲鹏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LINUX使用OpenSSL进行签名相关的知识,希望对你有一定的参考价值。
其实使用gpg也能完成任务。因为看到某个网页有介绍这种方法,于是就记录下。
- 原理图
- 创建私钥
# 创建私钥
openssl genrsa -out key.pri -f4 2048
# 查看私钥
openssl rsa -inform PEM -in key.pri -text
- 导出公钥
# 导出公钥
openssl rsa -inform PEM -outform PEM -in key.pri -out key.pub -pubout
# 查看公钥
cat key.pub
- 方法1:私钥签名、公钥校验
测试发现方法1与方法2的sig文件不同。所以要分开。
# 签名
openssl dgst -sha256 -out file.sig -sign key.pri -keyform PEM file.txt
# 查看签名
od -v -An -t x1 file.sig
# 公钥校验
openssl dgst -sha256 -keyform PEM -verify key.pub -signature file.sig file.txt
- 方法2:私钥签名、公钥校验
# 私钥签名
openssl dgst -sha256 -binary -out file.sha256 file.txt
openssl rsautl -out file.sig -sign -inkey key.pri -in file.sha256
# 查看签名
od -v -An -t x1 file.sig
# 计算信息摘要
openssl rsautl -out file.rec -inkey key.pub -in file.sig -pubin -verify
# 查看信息摘要
od -v -An -t x1 file.rec
# 计算原文件f的信息摘要。
openssl dgst -sha256 -binary -out file.sha256 file.txt
# 查看
od -v -An -t x1 file.sha256
以上是关于LINUX使用OpenSSL进行签名的主要内容,如果未能解决你的问题,请参考以下文章