JAVA签名对象 - 没有安装的提供程序支持此密钥:sun.security.rsa.RSAPrivateCrtKeyImpl

Dor*_*ica 7 java encryption digital-signature

我想使用我使用密钥工具创建的一对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);
Run Code Online (Sandbox Code Playgroud)

但我得到了这个例外:
No installed provider supports this key: sun.security.rsa.RSAPrivateCrtKeyImpl

感谢任何帮助!

ped*_*ofb 9

您不能使用SHA1withDSARSA密钥.将签名算法更改为SHA1withRSA或生成DSA密钥instea