从文本字符串验证SHA1摘要

时间:2011-03-30 21:17:03

标签: string openssl sha1 decode digest

我在验证文本字符串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文件包含已编码的字符串。

2 个答案:

答案 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