我想使用我使用关键工具和以下命令创建的一对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
感谢任何帮助!
答案 0 :(得分:8)
您不能将SHA1withDSA
与RSA密钥一起使用。将签名算法更改为SHA1withRSA
或生成DSA密钥instea