1

PHP の openssl_sign メソッドを SHA512 (または他の SHA2 ファミリー メンバー) で動作させる機会はありますか?

キーの種類 (OPENSSL_KEYTYPE_RSA) として RSA を使用し、

openssl_sign($data, $signature, $privatekey, 'sha512');

すべてがうまく機能します。

ただし、OPENSSL_KEYTYPE_DSA を使用する場合、署名は空のままです。

OpenSSLのヘルプ ページで、「DSA アルゴリズムを使用してデータに署名または検証する場合は、dss1 ダイジェストを使用する必要があります。」という記述を見つけました。</p>

だから私はDSAでこれを試しました:

openssl_sign($data, $signature, $privatekey, 'dss1');

そしてそれはうまくいきました。

私のユースケースにより適したはるかに短い署名を作成するため、DSA を使用することをお勧めします。しかし、私の懸念は、DSS1 は基本的に SHA1 であり、もう使用されていないことです。これはDSAとの組み合わせでも有効ですか?この問題を回避し、SHA512 で DSA を使用する方法はありますか?

4

1 に答える 1