【发布时间】:2016-11-12 17:03:30
【问题描述】:
这是我项目中的一个问题。
在这个任务中,我们将使用 OpenSSL 来生成数字签名。请准备一个任意大小的文件(example.txt)。还要准备一个 RSA 公钥/私钥对。然后执行以下操作:
- 对example.txt的SHA256哈希签名;将输出保存在 example.sha256 中。
- 验证 example.sha256 中的数字签名。
- 稍微修改example.txt,再次验证数字签名。
请描述您是如何执行上述三个操作的(例如,您使用的确切命令等)。描述你观察到的并解释你的观察。还请解释为什么数字签名通常很有用。
所以,我执行以下操作。
1.创建私钥/公钥对
openssl genrsa -out private.pem 1024
2。提取公钥。
openssl rsa -in private.pem -out public.pem -outform PEM -pubout
3.创建数据的哈希。
echo 'data to sign' > example.txt
openssl dgst -sha256 < example.txt > hash
4.使用私钥将哈希签名到名为 example.sha256 的文件
openssl rsautl -sign -inkey private.pem -keyform PEM -in hash > example.sha256
5.验证文件(example.txt)和数字签名(example.sha256)
openssl dgst -sha256 -verify public.pem -signature example.sha256 example.txt
完成所有这些操作后,我收到一条错误消息“验证失败”
如果我在某个地方出错了,请纠正我。
【问题讨论】: