2011-03-30 60 views
1

我在驗證文本字符串的base64中的SHA1摘要時遇到問題。驗證文本字符串中的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= 

現在我想驗證這一點diges使用公共密鑰T,但是我用的命令就是一個例子,在OpenSSL如何做,並提供:

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

但是這總是給我「驗證失敗」。

注:hash1文件沒有任何\ n,test1文件包含被編碼的字符串。

回答

2

OpenSSL的DGST -sha1 -verify Public_key.pem -signature HASH1 test1的

我不熟悉OpenSSL的,但我沒有看到在上面的命令的任何參數,將表明該散列文件使用base64進行編碼。也許你應該在驗證之前將base64編碼文件轉換爲二進制文件?

0

你應該首先base64 docode openssl dgst -sha1 -verify Public_key.pem -signature hash1_decoded test1