gpt4 book ai didi

java - 解释代码 - SSL

转载 作者:太空宇宙 更新时间:2023-11-03 15:17:06 26 4
gpt4 key购买 nike

任何人都可以解释下面的代码(标记为“HERE”)。

  1. Keystore.load() 执行什么?
  2. 为什么使用KeyManagerFactory

我需要实用的解决方案。

System.setProperty("1", "/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre");

String jrehome = System.getProperty("1");
String path = jrehome + "/" + "lib" + "/" + "security" + "/" + "cacerts";
char[] ksPass= "changeit".toCharArray();

try {
KeyStore ks = KeyStore.getInstance("JKS"); // <- HERE
System.out.println(ks.toString());
ks.load(new FileInputStream(path), ksPass);

KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
kmf.init(ks, ksPass);

TrustManagerFactory tmf = TrustManagerFactory.getInstance("X509");
System.out.println(ks.getCertificate("SunX509"));
tmf.init(ks);

SSLContext sc = SSLContext.getInstance("TLS");
sc.getClientSessionContext().setSessionCacheSize(1);
sc.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
SSLServerSocketFactory ssf = sc.getServerSocketFactory();

SSLServerSocket s = (SSLServerSocket) ssf.createServerSocket(8888); // <-- HERE

System.out.println("Server started:");
}

最佳答案

  1. Keystore.load() 是访问 keystore 的强制调用,否则您无法访问它。 Javadoc 是这么说的。一旦加载了 keystore ,就可以从 keystore 中读取现有条目,或者将新条目写入 keystore 。您有一些用于 load() 的重载方法。

  2. KeyManagerFactory 是一个遵循工厂模式的类,它创建 key 管理器实例来管理特定类型的 key Material ,供安全套接字使用。

关于java - 解释代码 - SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32115840/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com