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

📄 recnode1.txt

📁 采用RSA公秘钥体制和MD5签名算法的安全通信
💻 TXT
字号:
import java.awt.BorderLayout;
import java.awt.Rectangle;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;

import java.awt.Dimension;
import java.io.ObjectOutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.security.PublicKey;

import javax.swing.JScrollPane;

public class RecNode extends JFrame {

	private static final long serialVersionUID = 1L;
	private JPanel jContentPane = null;
	private JPanel jPanel = null;
	private static JTextArea jTextArea = null;
	private JPanel jPanel1 = null;
	private JButton jButton2 = null;
	static JTextArea jTextArea1 = null;
	private static JTextArea jTextArea3 = null;
	private JScrollPane jScrollPane = null;
	private static JTextArea jTextArea4 = null;
	private JScrollPane jScrollPane1 = null;
	private JScrollPane jScrollPane2 = null;
	
	//自己定义的有关加解密的属性
	private static RSA rsa = new RSA();  //  @jve:decl-index=0:需要向对方发送RSApublicKey以及自身留下privateKey
	private static DES des = new DES();  //  @jve:decl-index=0:用来保存对方发送来的DES密钥,以及用到里边的解密函数.
	private static PublicKey publicKey;//存放认证用的公钥
	private JScrollPane jScrollPane3 = null;

	public static void setPublicKey(PublicKey k){
		publicKey = k;
	}
	public static RSA getRSA(){
		return rsa;
	}
	public static PublicKey getPublicKey(){
		return publicKey;
	}
	public static DES getDES(){
		return des;
	}
	/**
	 * This method initializes jPanel	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJPanel() {
		if (jPanel == null) {
			jPanel = new JPanel();
			jPanel.setLayout(null);
			jPanel.setBounds(new Rectangle(317, 4, 243, 361));
			jPanel.add(getJScrollPane(), null);
			jPanel.add(getJScrollPane1(), null);
			jPanel.add(getJScrollPane2(), null);
		}
		return jPanel;
	}

	/**
	 * This method initializes jTextArea	
	 * 	
	 * @return javax.swing.JTextArea	
	 */
	private JTextArea getJTextArea() {
		if (jTextArea == null) {
			jTextArea = new JTextArea();
			jTextArea.setLineWrap(true);
			jTextArea.setBorder(BorderFactory.createTitledBorder("接收到的DES密钥:"));
		}
		return jTextArea;
	}

	/**
	 * This method initializes jPanel1	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJPanel1() {
		if (jPanel1 == null) {
			jPanel1 = new JPanel();
			jPanel1.setLayout(null);
			jPanel1.setBounds(new Rectangle(-1, 5, 317, 361));
			jPanel1.add(getJScrollPane3(), null);
			jPanel1.add(getJButton2(), null);
		}
		return jPanel1;
	}

	/**
	 * This method initializes jButton2	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton2() {
		if (jButton2 == null) {
			jButton2 = new JButton();
			jButton2.setText("\u91cd\u7f6e");
			jButton2.setBounds(new Rectangle(105, 305, 100, 37));
			jButton2.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
					jTextArea1.setText("");
				}
			});
		}
		return jButton2;
	}

	/**
	 * This method initializes jTextArea1	
	 * 	
	 * @return javax.swing.JTextArea	
	 */
	private static JTextArea getJTextArea1() {
		if (jTextArea1 == null) {
			jTextArea1 = new JTextArea();
			jTextArea1.setName("jTextArea");
			jTextArea1.setLineWrap(true);
			jTextArea1.setBorder(BorderFactory.createTitledBorder("信息:"));
			
		}
		return jTextArea1;
	}
	public static void appendJTextArea1(String str){
		jTextArea1.append(str);
	}
	public static void appendJTextArea(String str){
		jTextArea.setText("");
		jTextArea.append(str);
	}
	public static void appendJTextArea3(String str){
		jTextArea3.setText("");
		jTextArea3.append(str);
	}
	public static void appendJTextArea4(String str){
		jTextArea4.setText("");
		jTextArea4.append(str);
	}
	/**
	 * This method initializes jTextArea3	
	 * 	
	 * @return javax.swing.JTextArea	
	 */
	private JTextArea getJTextArea3() {
		if (jTextArea3 == null) {
			jTextArea3 = new JTextArea();
			jTextArea3.setLineWrap(true);
			jTextArea3.setBorder(BorderFactory.createTitledBorder("解密后的DES密钥:"));
		}
		return jTextArea3;
	}

	/**
	 * This method initializes jScrollPane	
	 * 	
	 * @return javax.swing.JScrollPane	
	 */
	private JScrollPane getJScrollPane() {
		if (jScrollPane == null) {
			jScrollPane = new JScrollPane();
			jScrollPane.setBorder(BorderFactory.createTitledBorder("接收用来认证的publicKey:"));
			jScrollPane.setViewportView(getJTextArea4());
			jScrollPane.setBounds(new Rectangle(2, 6, 237, 94));
		}
		return jScrollPane;
	}
	/**
	 * This method initializes jTextArea4	
	 * 	
	 * @return javax.swing.JTextArea	
	 */
	private static JTextArea getJTextArea4() {
		if (jTextArea4 == null) {
			jTextArea4 = new JTextArea();
			jTextArea4.setLineWrap(true);
		}
		return jTextArea4;
	}
	/**
	 * This method initializes jScrollPane1	
	 * 	
	 * @return javax.swing.JScrollPane	
	 */
	private JScrollPane getJScrollPane1() {
		if (jScrollPane1 == null) {
			jScrollPane1 = new JScrollPane();
			jScrollPane1.setBounds(new Rectangle(4, 100, 234, 105));
			jScrollPane1.setViewportView(getJTextArea());
		}
		return jScrollPane1;
	}
	/**
	 * This method initializes jScrollPane2	
	 * 	
	 * @return javax.swing.JScrollPane	
	 */
	private JScrollPane getJScrollPane2() {
		if (jScrollPane2 == null) {
			jScrollPane2 = new JScrollPane();
			jScrollPane2.setBounds(new Rectangle(5, 209, 235, 115));
			jScrollPane2.setViewportView(getJTextArea3());
		}
		return jScrollPane2;
	}
	/**
	 * This method initializes jScrollPane3	
	 * 	
	 * @return javax.swing.JScrollPane	
	 */
	private JScrollPane getJScrollPane3() {
		if (jScrollPane3 == null) {
			jScrollPane3 = new JScrollPane();
			jScrollPane3.setBounds(new Rectangle(5, 4, 311, 290));
			jScrollPane3.setViewportView(getJTextArea1());
		}
		return jScrollPane3;
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				JFrame thisClass = new RecNode();
				thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				thisClass.setVisible(true);
			}
		});
	}

	/**
	 * This is the default constructor
	 */
	public RecNode() {
		super();
		initialize();
		new ConnectListenStart().start();//发送一个RSA公钥给对方
		new GetPublicKey().start();
		new GetDESkey().start();
		 new MessageRec().start();//新建线程开始监听5111端口
	}

	static void sendRSApublicKey(String str){
		  
		  try{
			  Socket s = new Socket(InetAddress.getByName(str),5113);
			  ObjectOutputStream objout = new ObjectOutputStream(s.getOutputStream());
			  objout.writeObject(rsa.getPublicKey());//向终端发送public Key
			  objout.flush();//刷新缓冲区
		  }catch(Exception ex){
			  ex.printStackTrace();
		  }
	}
	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(569, 393);
		this.setContentPane(getJContentPane());
		this.setTitle("消息接受端");
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(getJPanel(), null);
			jContentPane.add(getJPanel1(), null);
		}
		return jContentPane;
	}


}  //  @jve:decl-index=0:visual-constraint="10,10"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -