下面的程序用来验证JKS的文件及密码是否正确
public static URL getStoreURL(String storePath) throws IOException { URL url = null; // First see if this is a URL try { url = new URL(storePath); } catch (MalformedURLException e) { // Not a URL or a protocol without a handler so... // next try to locate this as file path File tst = new File(storePath); if (tst.exists() == true) { url = tst.toURL(); } else { // not a file either, lastly try to locate this as a classpath // resource if (url == null) { ClassLoader loader = Thread.currentThread().getContextClassLoader(); url = loader.getResource(storePath); } } } // Fail if no valid key store was located if (url == null) { String msg = "Failed to find url=" + storePath + " as a URL, file or resource"; throw new MalformedURLException(msg); } return url; } public static KeyStore loadKeyStore(String storeType, URL storePathURL, String storePassword) throws Exception { KeyStore keyStore = null; String provider = null; String providerName = null; if (provider != null) { keyStore = KeyStore.getInstance(storeType, provider); } else if (providerName != null) { keyStore = KeyStore.getInstance(storeType, providerName); } else { keyStore = KeyStore.getInstance(storeType); } if (storePathURL == null) { throw new Exception("Can not find store file for url because store url is null."); } // now that keystore instance created, need to load data from file InputStream keyStoreInputStream = null; try { keyStoreInputStream = storePathURL.openStream(); // is ok for password to be null, as will just be used to check // integrity of store char[] password = storePassword != null ? storePassword.toCharArray() : null; keyStore.load(keyStoreInputStream, password); } finally { if (keyStoreInputStream != null) { try { keyStoreInputStream.close(); } catch (IOException e) { // no op } keyStoreInputStream = null; } } return keyStore; } public static String verifyP12(String p12Path,String p12Pwd) { String ret = "验证成功"; try { URL ksURL = getStoreURL(p12Path); if(ksURL==null)throw new Exception(p12Path+"文件未找到"); loadKeyStore("PKCS12",ksURL,p12Pwd); } catch(Exception ex) { ret = ex.getMessage(); ex.printStackTrace(); } return ret; } public static String verifyJks(String jksPath,String jksPwd) { String ret = "验证成功"; try { URL ksURL = getStoreURL(jksPath); loadKeyStore("JKS",ksURL,jksPwd); if(ksURL==null)throw new Exception(jksPath+"文件未找到"); } catch(Exception ex) { ret = ex.getMessage(); ex.printStackTrace(); } return ret; }