⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usesecureordertaker.java

📁 使用SSL确保订单的安全java的实现
💻 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 + -