我是java的新手。我有证书文件(.cer,签名算法名称:SHA1withRSA)文件。他们的要求是在Web应用程序中加密用户密码。
我在google上有几个链接,没有使用.cer文件扩展,我使用
在我的密钥库中导入了该文件keytool -importcert -file C:\Users\Admin\Downloads\xyz.cer -keystore test.jks -alias demo
我使用以下代码获取这些密钥:
public SecretKey getSecretKey(final String typeKeyStore,
final String pathToKeyStore,
final String storePassword,
final String keyAlias,
final String aliasPassword) throws KeyStoreException,
IOException, CertificateException, NoSuchAlgorithmException, UnrecoverableEntryException {
KeyStore ks = KeyStore.getInstance(typeKeyStore);
ks.load(new FileInputStream(pathToKeyStore),
storePassword.toCharArray());
SecretKeyEntry entry = (SecretKeyEntry) ks.getEntry(
keyAlias,
new KeyStore.PasswordProtection(aliasPassword
.toCharArray()));
return entry.getSecretKey();
}
以下异常即将来临:
Exception in thread "main" java.lang.UnsupportedOperationException: trusted certificate entries are not password-protected
at java.security.KeyStoreSpi.engineGetEntry(Unknown Source)
at java.security.KeyStore.getEntry(Unknown Source)
at com.aes256.MyAESCrypto.getSecretKey(MyAESCrypto.java:71)
at com.aes256.MyAESCrypto.main(MyAESCrypto.java:100)
任何人都可以帮助我,不管我是对的吗?