我想对我使用 key 工具创建的一对 RSA key 和以下命令创建的文件进行签名:
keytool -genkeypair -alias key -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -validity 365 -keystore keystore.jks
我想初始化我的签名对象,所以我尝试了这个:

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

但我得到了这个异常(exception):No installed provider supports this key: sun.security.rsa.RSAPrivateCrtKeyImpl
感谢任何帮助!

最佳答案

您不能将 SHA1withDSA 与 RSA key 一起使用。将签名算法更改为 SHA1withRSA 或生成 DSA key instea

关于JAVA 签名对象 - 没有安装的提供程序支持此 key : sun. security.rsa.RSAPrivateCrtKeyImpl,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41534827/

10-12 16:40