问题描述
我已经尝试搜索,但我仍然没有找到问题的答案。
我使用 Java KeyStore 来存储对称 AES 密钥,
一切顺利,直到在获取密钥时向我抛出以下异常:
Exception in thread "main" java.security.UnrecoverableKeyException: Rejected by the jceks.key.serialFilter or jdk.serialFilter property
at java.base/com.sun.crypto.provider.KeyProtector.unseal(KeyProtector.java:395)
at java.base/com.sun.crypto.provider.JceKeyStore.engineGetKey(JceKeyStore.java:146)
at java.base/java.security.KeyStore.getKey(KeyStore.java:1050)
我找到了一些解决方案,但它们对我的问题无效,它是一个关键的安全应用程序,我已经阅读了有关 java 序列化漏洞的信息,我不打算修改 java.ini 文件。 security 文件,我想知道是否有办法解决这个问题。
如何解决我为 PKCS12 证书实例化密钥库并且它工作正常,而不是 JCEKS,它会导致问题吗?
我正在使用以下 JRE:1.8.0_282,更改或升级它不是一个选项。
附上我的代码:
//initialization of existent KeyStore
private static KeyStore init() throws KeyStoreException,NoSuchAlgorithmException,CertificateException,IOException
{
KeyStore keyStore = KeyStore.getInstance("JCEKS");
keyStore.load(new FileInputStream(KeyStoreName),pwdArray);
return keyStore;
}
//key storage
public static void storeSimmetricKey(String alias,SecretKey key,final String pwd) throws KeyStoreException,IOException
{
KeyStore keyStore = init();
Key sks = (Key) key;
keyStore.setKeyEntry(alias,sks,pwd.tochararray(),null);
keyStore.store(new FileOutputStream(KeyStoreName),pwd.tochararray());
}
//key retrieve
public static Key getSimmetricKey(String alias,final String pwd) throws UnrecoverableKeyException,KeyStoreException,IOException
{
KeyStore keyStore = init();
Key k = keyStore.getKey(alias,pwd.tochararray());
return k;
}
任何提示将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)