📄 usesecureordertaker.java
字号:
import java.net.*;import java.io.*;import java.util.*;import java.security.*;import javax.net.ssl.*;import javax.net.*;import com.sun.net.ssl.*; public class useSecureOrderTaker { //定义常量 public final static int DEFAULT_PORT = 7000; public final static String algorithm = "SSLv3"; public static void main(String[] args) { int port = DEFAULT_PORT; if (args.length > 0) { try { port = Integer.parseInt(args[0]); if (port < 0 || port >= 65536) { System.out.println("Port must between 0 and 65535"); return; } } catch (NumberFormatException e) {} } try { SSLContext context = SSLContext.getInstance("SSL"); // 实现仅支持X.509关键字 KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509"); // Sun的缺省关键字存储 KeyStore ks = KeyStore.getInstance("JKS"); char[] password = "2andnotafnord".toCharArray(); ks.load(new FileInputStream("jnp2e19.keys"), password); kmf.init(ks, password); //context初始化 context.init(kmf.getKeyManagers(), null, null); //构造SSLServerSocketFactory类 SSLServerSocketFactory factory = context.getServerSocketFactory(); //构造SSLServerSocket类 SSLServerSocket server = (SSLServerSocket) factory.createServerSocket(port); String[] supported = server.getSupportedCipherSuites(); String[] anonCipherSuitesSupported = new String[supported.length]; int numAnonCipherSuitesSupported = 0; for (int i = 0; i < supported.length; i++) { if (supported[i].indexOf("_anon_") > 0) { anonCipherSuitesSupported[numAnonCipherSuitesSupported++] = supported[i]; } } String[] oldEnabled = server.getEnabledCipherSuites(); String[] newEnabled = new String[oldEnabled.length + numAnonCipherSuitesSupported]; //字符串复制 System.arraycopy(oldEnabled, 0, newEnabled, 0, oldEnabled.length); System.arraycopy(anonCipherSuitesSupported, 0, newEnabled, oldEnabled.length, numAnonCipherSuitesSupported); server.setEnabledCipherSuites(newEnabled); // 准备工作完成,开始实际通信 try { while (true) { // 此socket是安全的但在代码里面没有显示T Socket theConnection = server.accept(); //输入流 InputStream in = theConnection.getInputStream(); int c; while ((c = in.read()) != -1) { System.out.write(c); } theConnection.close(); } // end while } // end try catch (IOException e) { System.err.println(e); } // end catch } // end try catch (IOException e) { e.printStackTrace(); } // end catch catch (KeyManagementException e) { e.printStackTrace(); } // end catch catch (KeyStoreException e) { e.printStackTrace(); } // end catch catch (NoSuchAlgorithmException e) { e.printStackTrace(); } // end catch catch (java.security.cert.CertificateException e) { e.printStackTrace(); } // end catch catch (UnrecoverableKeyException e) { e.printStackTrace(); } // end catch } // end main} // end server
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -