web-dev-qa-db-ja.com

JAVA署名オブジェクト-インストールされているプロバイダーはこのキーをサポートしていません:Sun.security.rsa.RSAPrivateCrtKeyImpl

キーツールと次のコマンドを使用して作成したRSAキーのペアを使用して作成したファイルに署名したい:

keytool -genkeypair -alias key -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -validity 365 -keystore keystore.jks

Signatureオブジェクトを初期化したいので、これを試しました。

PrivateKey privateKey = (PrivateKey) keyStore.getKey(PRIVATE_KEY_ALIAS,privateKeyPassword);
Signature signature = Signature.getInstance(SIGNATURE_ALGORITHM);
signature.initSign(privateKey);

しかし、私はこの例外を受け取りました:
No installed provider supports this key: Sun.security.rsa.RSAPrivateCrtKeyImpl

助けに感謝します!

7
Dor Mesica

RSAキーでSHA1withDSAを使用することはできません。署名アルゴリズムをSHA1withRSAに変更するか、DSAキーインステアを生成します

9
pedrofb