从JCEKS密钥库中读取Secretkey |爪哇

时间:2018-09-23 05:46:28

标签: java keystore jks secret-key jceks

我正在尝试使用Java代码从JCEKS密钥库中读取密钥(密码),该代码适用于JKS密钥库,但不适用于JCEKS密钥库。我正在使用ibm_sdk71作为运行时(由于项目要求)。

public static String getPasswordFromKeystore(String entry, String keystoreLocation, String keyStorePassword,String keyPP1) throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException, InvalidKeySpecException, java.security.UnrecoverableEntryException{
    char[] password = "new".toCharArray() ;  
    FileInputStream fIn = new FileInputStream(keystoreLocation);
    KeyStore.PasswordProtection keyStorePP = new KeyStore.PasswordProtection(keyStorePassword.toCharArray());
    KeyStore.PasswordProtection keyPP = new KeyStore.PasswordProtection(keyPP1.toCharArray());
    KeyStore ks= KeyStore.getInstance("JCEKS");
    ks.load(fIn, keyStorePassword.toCharArray());
    SecretKeyFactory factory = SecretKeyFactory.getInstance("PBE");
    KeyStore.SecretKeyEntry ske;
    ske = (KeyStore.SecretKeyEntry)ks.getEntry(entry, keyPP);
    PBEKeySpec keySpec;
    keySpec = (PBEKeySpec)factory.getKeySpec(ske.getSecretKey(),PBEKeySpec.class);
    password = keySpec.getPassword();
  return new String(password);
}

赞赏任何指导。 问候

0 个答案:

没有答案