java AES密钥存储
大家好,我在将AES密钥存储到密钥库时遇到问题
这是我的代码:
public Key getKey(String alias) {
try {
FileInputStream fStream = new FileInputStream(path);
keyStore.load(fStream, this.password.toCharArray());
Key key = keyStore.getKey(alias, null);
fStream.close();
return key;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public void storeKey(Key key, String alias) {
try {
keyStore.setKeyEntry(alias, key.getEncoded(), null);
OutputStream writeStream = new FileOutputStream(path);
keyStore.store(writeStream, this.password.toCharArray());
writeStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
所以storeKey可以正常工作,但当我调用getKey()时,会出现以下异常:
java.security.UnrecoverableKeyException: Get Key failed: AES SecretKeyFactory not available
at sun.security.pkcs12.PKCS12KeyStore.engineGetKey(Unknown Source)
at java.security.KeyStore.getKey(Unknown Source)
at sm130075.vl130298.crypto.KeyStoreManager.getKey(KeyStoreManager.java:51)
at sm130075.vl130298.crypto.AES.<init>(AES.java:36)
at sm130075.vl130298.crypto.AES.main(AES.java:84)
编辑: 所以我发现问题很可能是SecretFactory不知道如何为AES生成密钥。有人知道我该怎么解决吗
共 (0) 个答案