1

我在验证文本字符串的 base64 中的 SHA1 摘要时遇到问题。

我在一个文件(test1)中有这个文本字符串:

2008-03-10;2008-03-10T15:58:00;FT 1/1;28.07;

我使用以下命令对其进行编码(请记住,我编码的是文本字符串而不是文本文件本身):

openssl dgst -sha1 -sign Private_key.pem < test1 | openssl enc -base64 > hash1

这导致以下摘要:

F8952fjEClltx2tF9m6/QTFynFjSuiboMslNZ1ag9oR5iIivgYYa0cNa0wJeWXlsf8QQVHUol303hp7XmIy5/kFOiV0v8QH6SF0Q5zNsDtpeFh2ZJ256y0DkJMSQqCq3oSka+9zIXXRkXgEsSv6VScCYv8VTlIcGjsablpR6A4=

现在我想使用公钥验证这个摘要,但是我使用的命令是 openssl how-to 中给出的示例:

openssl dgst -sha1 -verify Public_key.pem -signature hash1 test1

但这总是给我“验证失败”。

注意: hash1 文件没有任何 \n 并且 test1 文件包含已编码的字符串。

4

2 回答 2

2

openssl dgst -sha1 -verify Public_key.pem -signature hash1 test1

我对openssl不熟悉,但是我在上面的命令中没有看到任何参数表明哈希文件是用base64编码的。也许您应该在验证之前将 base64 编码文件转换为二进制文件?

于 2011-03-30T21:26:11.920 回答
0

你应该先base64 docode openssl dgst -sha1 -verify Public_key.pem -signature hash1_decoded test1

于 2015-04-22T11:12:45.763 回答