📄 sendnode.java
字号:
/*
* 连接:2000
* 发送DesKey:2001
* 发RsaPublicKey:2002
* 收RsaPublicKey:2004
* 发送消息:2003
*/
import javax.swing.SwingUtilities;
//import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JTextField;
import java.awt.Rectangle;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.awt.Dimension;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import javax.swing.BorderFactory;
import javax.swing.JEditorPane;
import javax.swing.JTextArea;
import javax.swing.JSplitPane;
import javax.swing.BoxLayout;
import javax.swing.UIManager;
import java.awt.Insets;
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.net.*;
import java.security.PublicKey;
import java.awt.event.KeyEvent;
import java.io.*;
import javax.swing.JSlider;
import javax.swing.JScrollPane;
public class SendNode extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JTextField jTextField = null;
private JLabel jLabel = null;
private JButton jButton = null;
private JPanel jPanel = null;
private JTextArea jTextArea = null;
private JPanel jPanel1 = null;
private JPanel jPanel2 = null;
private JTextArea jTextArea1 = null;
private JButton jButton2 = null;
private JPanel jPanel3 = null;
private JButton jButton3 = null;
private JTextArea jTextArea2 = null;
private JTextArea jTextArea3 = null;
private JTextArea jTextArea4 = null;
private JButton jButton1 = null;
private JButton jButton4 = null;
private JTextArea jTextArea5 = null;
private JScrollPane jScrollPane = null;
private JScrollPane jScrollPane1 = null;
private JScrollPane jScrollPane11 = null;
private JScrollPane jScrollPane12 = null;
private JScrollPane jScrollPane13 = null;
private JScrollPane jScrollPane14 = null;
private PublicKey publicKey = null;
private DES des = null;
private RSA rsa = new RSA(); // @jve:decl-index=0:
/**
* This method initializes jTextField
*
* @return javax.swing.JTextField
*/
private JTextField getJTextField() {
if (jTextField == null) {
jTextField = new JTextField();
jTextField.setText("127.0.0.1");
jTextField.setBounds(new Rectangle(87, 9, 80, 22));
}
return jTextField;
}
/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setText("Send Message");
jButton.setBounds(new Rectangle(161, 74, 123, 26));
jButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
try{
Socket s = new Socket(jTextField.getText(),2003);
ObjectOutputStream objOut = new ObjectOutputStream(s.getOutputStream());
String strSend = jTextArea2.getText();
MD5withRSA.setPrivateKey(rsa.getprivateKey());
byte [] sign = MD5withRSA.sign(strSend.getBytes());
byte [] messageSend = des.encrpty( strSend.getBytes());
objOut.writeInt(messageSend.length);
objOut.write(messageSend);
byte [] signSend = des.encrpty(sign);
int signLength = signSend.length;
objOut.writeInt(signLength);
objOut.write(signSend);
objOut.flush();
objOut.close();
s.close();
jTextArea.append( InetAddress.getLocalHost().getHostName()+":\n"
+"message:" +messageSend .toString()+"\n"+ "sign:"+signSend.toString()+ "\n");
jTextArea2.setText("");
}catch(Exception ex){ex.printStackTrace();}
}
});
}
return jButton;
}
/**
* This method initializes jPanel
*
* @return javax.swing.JPanel
*/
private JPanel getJPanel() {
if (jPanel == null) {
jPanel = new JPanel();
jPanel.setLayout(null);
jPanel.setBounds(new Rectangle(2, 1, 317, 40));
jPanel.add(jLabel, null);
jPanel.add(getJTextField(), null);
jPanel.add(getJButton3(), null);
}
return jPanel;
}
/**
* This method initializes jTextArea
*
* @return javax.swing.JTextArea
*/
private JTextArea getJTextArea() {
if (jTextArea == null) {
jTextArea = new JTextArea();
jTextArea.setName("jTextArea");
jTextArea.setLineWrap(true);
jTextArea.setBorder(BorderFactory.createTitledBorder("Cryptograph:"));
}
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(4, 314, 314, 191));
jPanel1.add(getJPanel3(), null);
jPanel1.add(getJScrollPane13(), null);
}
return jPanel1;
}
/**
* This method initializes jPanel2
*
* @return javax.swing.JPanel
*/
private JPanel getJPanel2() {
if (jPanel2 == null) {
jPanel2 = new JPanel();
jPanel2.setLayout(null);
jPanel2.setBounds(new Rectangle(2, 42, 315, 267));
jPanel2.add(getJButton1(), null);
jPanel2.add(getJButton4(), null);
jPanel2.add(getJScrollPane(), null);
jPanel2.add(getJScrollPane1(), null);
jPanel2.add(getJScrollPane11(), null);
jPanel2.add(getJScrollPane12(), null);
}
return jPanel2;
}
/**
* This method initializes jTextArea1
*
* @return javax.swing.JTextArea
*/
private JTextArea getJTextArea1() {
if (jTextArea1 == null) {
jTextArea1 = new JTextArea();
jTextArea1.setText("");
jTextArea1.setLineWrap(true);
jTextArea1.setBorder(BorderFactory.createTitledBorder("Terminal Public Key:"));
}
return jTextArea1;
}
/**
* This method initializes jButton2
*
* @return javax.swing.JButton
*/
private JButton getJButton2() {
if (jButton2 == null) {
jButton2 = new JButton();
jButton2.setText("Send Public Key");
jButton2.setBounds(new Rectangle(14, 74, 139, 26));
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()
try{
Socket s = new Socket(InetAddress.getByName(jTextField.getText()),2002);
ObjectOutputStream objOut = new ObjectOutputStream(s.getOutputStream());
objOut.writeObject(rsa.getPublicKey());
objOut.flush();
}catch(Exception ex){
ex.printStackTrace();
}
}
});
}
return jButton2;
}
/**
* This method initializes jPanel3
*
* @return javax.swing.JPanel
*/
private JPanel getJPanel3() {
if (jPanel3 == null) {
jPanel3 = new JPanel();
jPanel3.setLayout(null);
jPanel3.setName("jPanel3");
jPanel3.setBounds(new Rectangle(1, 80, 311, 105));
jPanel3.add(getJButton2(), null);
jPanel3.add(getJButton(), null);
jPanel3.add(getJScrollPane14(), null);
}
return jPanel3;
}
/**
* This method initializes jButton3
*
* @return javax.swing.JButton
*/
private JButton getJButton3() {
if (jButton3 == null) {
jButton3 = new JButton();
jButton3.setText("Connect");
jButton3.setBounds(new Rectangle(172, 7, 130, 26));
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
try{
Socket s = new Socket(InetAddress.getByName(jTextField.getText()),2000);
if(s.isConnected()){
jTextArea4.append("Connect Success!");
}
}catch(Exception ex){
ex.printStackTrace();
}
}
});
}
return jButton3;
}
/**
* This method initializes jTextArea2
*
* @return javax.swing.JTextArea
*/
private JTextArea getJTextArea2() {
if (jTextArea2 == null) {
jTextArea2 = new JTextArea();
jTextArea2.setText("Come on send me!");
jTextArea2.setAutoscrolls(true);
jTextArea2.setLineWrap(true);
jTextArea2.setBorder(BorderFactory.createTitledBorder("Message:"));
}
return jTextArea2;
}
/**
* 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 Key:"));
}
return jTextArea3;
}
/**
* This method initializes jTextArea4
*
* @return javax.swing.JTextArea
*/
private JTextArea getJTextArea4() {
if (jTextArea4 == null) {
jTextArea4 = new JTextArea();
jTextArea4.setLineWrap(true);
jTextArea4.setBorder(BorderFactory.createTitledBorder("Server Statue:"));
}
return jTextArea4;
}
/**
* This method initializes jButton1
*
* @return javax.swing.JButton
*/
private JButton getJButton1() {
if (jButton1 == null) {
jButton1 = new JButton();
jButton1.setBounds(new Rectangle(90, 236, 135, 28));
jButton1.setText("Encrypt");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
RSA rsa = new RSA();
rsa.setPublicKey(publicKey);
byte [] desAfterRSA = rsa.wrapkey(des.getSecretKey());
try{
Socket s = new Socket(InetAddress.getByName(jTextField.getText()),2001);
ObjectOutputStream objOut = new ObjectOutputStream(s.getOutputStream());
objOut.write(desAfterRSA);
objOut.flush();
}catch(Exception ex){ex.printStackTrace();}
jTextArea5.setText("");
jTextArea5.append(new String(desAfterRSA));
}
});
}
return jButton1;
}
/**
* This method initializes jButton4
*
* @return javax.swing.JButton
*/
private JButton getJButton4() {
if (jButton4 == null) {
jButton4 = new JButton();
jButton4.setBounds(new Rectangle(90, 150, 135, 28));
jButton4.setText("DES Key Creation");
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
des = new DES();
jTextArea3.setText("");
jTextArea3.append(des.getSecretKey().toString());
}
});
}
return jButton4;
}
/**
* This method initializes jTextArea5
*
* @return javax.swing.JTextArea
*/
private JTextArea getJTextArea5() {
if (jTextArea5 == null) {
jTextArea5 = new JTextArea();
jTextArea5.setLineWrap(true);
jTextArea5.setBorder(BorderFactory.createTitledBorder("Encrypted Key"));
}
return jTextArea5;
}
/**
* This method initializes jScrollPane
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane() {
if (jScrollPane == null) {
jScrollPane = new JScrollPane();
jScrollPane.setBounds(new Rectangle(1, 1, 310, 48));
jScrollPane.setViewportView(getJTextArea4());
}
return jScrollPane;
}
/**
* This method initializes jScrollPane1
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane1() {
if (jScrollPane1 == null) {
jScrollPane1 = new JScrollPane();
jScrollPane1.setBounds(new Rectangle(1, 50, 310, 48));
jScrollPane1.setViewportView(getJTextArea1());
}
return jScrollPane1;
}
/**
* This method initializes jScrollPane11
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane11() {
if (jScrollPane11 == null) {
jScrollPane11 = new JScrollPane();
jScrollPane11.setBounds(new Rectangle(1, 100, 310, 48));
jScrollPane11.setViewportView(getJTextArea3());
}
return jScrollPane11;
}
/**
* This method initializes jScrollPane12
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane12() {
if (jScrollPane12 == null) {
jScrollPane12 = new JScrollPane();
jScrollPane12.setBounds(new Rectangle(1, 182, 310, 51));
jScrollPane12.setViewportView(getJTextArea5());
}
return jScrollPane12;
}
/**
* This method initializes jScrollPane13
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane13() {
if (jScrollPane13 == null) {
jScrollPane13 = new JScrollPane();
jScrollPane13.setBounds(new Rectangle(1, 1, 310, 79));
jScrollPane13.setViewportView(getJTextArea());
}
return jScrollPane13;
}
/**
* This method initializes jScrollPane14
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane14() {
if (jScrollPane14 == null) {
jScrollPane14 = new JScrollPane();
jScrollPane14.setBounds(new Rectangle(1, 1, 310, 67));
jScrollPane14.setViewportView(getJTextArea2());
}
return jScrollPane14;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SwingUtilities.invokeLater(new Runnable() {
public void run() {
SendNode thisClass = new SendNode();
thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
thisClass.setVisible(true);
}
});
}
/**
* This is the default constructor
*/
public SendNode() {
super();
new Thread (new Runnable(){
public void run(){
ServerSocket ss=null;
try{
ss = new ServerSocket(2004);
}catch(Exception e){
e.printStackTrace();
}
while(1==1){
try{
Socket s = ss.accept();
ObjectInputStream objInput = new ObjectInputStream(s.getInputStream());
publicKey = (PublicKey)objInput.readObject();
jTextArea1.setText("");
jTextArea1.append(publicKey.toString());
}catch(Exception e){
e.printStackTrace();
}
}
}
}).start();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(331, 541);
this.setContentPane(getJContentPane());
try
{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
}
catch(Exception e)
{
e.printStackTrace();
}
this.setTitle("Sender");
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jLabel = new JLabel();
jLabel.setText("IP Address:");
jLabel.setBounds(new Rectangle(3, 10, 79, 18));
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getJPanel(), null);
jContentPane.add(getJPanel1(), null);
jContentPane.add(getJPanel2(), null);
}
return jContentPane;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -