我很难验证使用RSA私钥创建的数字签名。当我尝试解密签名时,可以正确看到sha256摘要,但是,签名验证失败。我在下面做错什么了吗?
这是我的输入内容及其sha256摘要:
$ echo -n hello | sha256sum
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 -
使用公钥进行的解密显示了相同的摘要:
$ openssl rsautl -inkey /tmp/pub.key -pubin -in /tmp/signature.bin | hexdump
0000000 f22c ba4d b05f 0ea3 e826 2a3b b9c5 9ee2
0000010 161b 5c1e a71f 5e42 0473 6233 8b93 2498
0000020
我在文件中输入的内容相同,只有5个字符。
$ cat /tmp/in.txt
hello$ wc -c /tmp/in.txt
5 /tmp/in.txt
数字签名验证失败:
$ openssl dgst -sha256 -verify /tmp/pub.key \
-signature /tmp/signature.bin /tmp/in.txt
Verification Failure
任何想法都值得赞赏。预先感谢。
OpenSSL版本为1.1.0g