我在验证文本字符串base64中的SHA1摘要时遇到问题。
我在文件(test1)中有这个文本字符串:
2008-03-10;2008-03-10T15:58:00;FT 1/1;28.07;
我使用了follow命令对其进行编码(请记住,我正在编写文本字符串而不是文本文件本身):
openssl dgst -sha1 -sign Private_key.pem < test1 | openssl enc -base64 > hash1
结果如下:
F8952fjEClltx2tF9m6/QTFynFjSuiboMslNZ1ag9oR5iIivgYYa0cNa0wJeWXlsf8QQVHUol303hp7XmIy5/kFOiV0v8QH6SF0Q5zNsDtpeFh2ZJ256y0DkJMSQqCq3oSka+9zIXXRkXgEsSv6VScCYv8VTlIcGjsablpR6A4=
现在我想使用公钥来验证这个摘要,但是我使用的命令是一个给出openssl方法的例子:
openssl dgst -sha1 -verify Public_key.pem -signature hash1 test1
但这总是让我“验证失败”。
注意:hash1文件没有任何\ n,test1文件包含已编码的字符串。
答案 0 :(得分:2)
openssl dgst -sha1 -verify Public_key.pem -signature hash1 test1
我不熟悉openssl,但我在上面的命令中没有看到任何表明哈希文件是用base64编码的参数。也许您应该在验证之前将base64编码的文件转换为二进制文件?
答案 1 :(得分:0)
你应该首先使用base64 docode
openssl dgst -sha1 -verify Public_key.pem -signature hash1_decoded test1