1
PHPのopenssl_sign
とopenssl_verify
関数は、サイズ制限のために署名前にデータのハッシングを実行しているようですので、コマンドラインでこれをエミュレートしようとしました。OpenSSLのコマンドラインで作成されたPHPによる署名の確認方法は?
は、OpenSSLを経由して署名:
echo "foo" | openssl dgst -sha1 -binary | openssl rsautl -inkey priv.pem -sign > sig.bin
は、私も改行ととせずに、多数の組み合わせ、ハッシュのバイナリと六角の形を試してみました、としましたPHP
$key = openssl_pkey_get_public('pub.pem');
$ver = openssl_verify("foo\n", file_get_contents('sig.bin'), $key, OPENSSL_ALGO_SHA1);
// $ver always 0
を経由して検証しますPHP関数に渡す前にハッシュする
[pkeyutl](HTTPと一緒に日を含め、たとえば、実際には
、あなたがあなた自身の署名の形式を定義することができ、この方法「公開鍵で暗号化」に似ています://www.openssl.org/docs/apps/pkeyutl.html#)コマンドは、ハッシュと署名を1ステップで実行できます。 –
私のopenssl(Mac)のインストールにはこのユーティリティがありません – Tim