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 のハウツーに記載されている例です。

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 に答える