0
我使用下面的代码来显示与我的密钥库证书关联的别名,并且它工作正常,现在可以如何显示别名passowrd?有没有这方面的任何方法。显示来自密钥库证书的别名密码
public class keyaliasfinder {
public static void main(String args[])
{
FileInputStream is = null;
try {
File file = new File("c:\\my_keystore");
is = new FileInputStream(file);
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
String password = "FnvUKHdr6b4343dfdf";
keystore.load(is, password.toCharArray());
PrivateKey p=new PrivateKey() {
@Override
public String getFormat() {
// TODO Auto-generated method stub
return null;
}
@Override
public byte[] getEncoded() {
// TODO Auto-generated method stub
return null;
}
@Override
public String getAlgorithm() {
// TODO Auto-generated method stub
return null;
}
};
Enumeration enumeration = keystore.aliases();
while(enumeration.hasMoreElements()) {
String alias = (String)enumeration.nextElement();
System.out.println("alias name: " + alias);
Certificate certificate = keystore.getCertificate(alias);
System.out.println(certificate.toString());
}
} catch (java.security.cert.CertificateException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (KeyStoreException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if(null != is)
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
的密码,必须提供用于读取密钥存储的私钥。你必须知道它。它不存储在密钥存储区中。 – Robert
@Robert,但我在哪里提到这个密码是你在谈论已经存在的密钥库密码。 – Prateek
@Robert当然它存储在KeyStore中。但是,当然没有API来检索它。否则,KeyStore API将不安全。 – EJP