資源簡介
基于客戶端通信的DES加密的java實現,可支持同時實現多個客戶端的加密通信,安全系數高。

代碼片段和文件信息
import?java.awt.EventQueue;
import?javax.swing.Jframe;
import?javax.swing.JOptionPane;
import?javax.swing.JPanel;
import?javax.swing.border.EmptyBorder;
import?javax.swing.JLabel;
import?java.awt.Font;
import?javax.swing.JButton;
import?java.awt.event.ActionListener;
import?java.awt.event.ActionEvent;
import?java.io.DataInputStream;
import?java.io.DataOutputStream;
import?java.io.IOException;
import?java.net.ServerSocket;
import?java.net.Socket;
import?java.net.UnknownHostException;
import?javax.swing.JScrollPane;
import?javax.swing.JTextArea;
@SuppressWarnings(“serial“)
public?class?CLient?extends?Jframe?implements?Runnable{
private?JPanel?contentPane;
????private?int?port;//設置的客戶端端口號
????private?String?sendToip;//要接收方的ip地址
????private??int?sendToport;//要接受方的端口號
????private?String?text;//要發送的明文
????private?String?result;
????ServerSocket?ss=null;
????private?Socket?socket=null;
????private?Thread?thread=null;//該線程打開特定的端口號等待連接
????private?DES?des=null;?
????/**
?*?Launch?the?application.
?*/
????JTextArea?resultArea;
????JTextArea?mingwen;
????JTextArea?ipArea;
????JTextArea?portArea;
????JTextArea?portSelf;
????
public?static?void?main(String[]?args)?{
EventQueue.invokeLater(new?Runnable()?{
public?void?run()?{
try?{
CLient?frame?=?new?CLient();
frame.setVisible(true);
}?catch?(Exception?e)?{
e.printStackTrace();
}
}
});
}
/**
?*?Create?the?frame.
?*/
public?CLient()?throws?Exception{
settitle(“\u52A0/\u89E3\u5BC6\u8F6F\u4EF6\u5BA2\u6237\u7AEF“);
setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
setBounds(100?100?661?483);
contentPane?=?new?JPanel();
contentPane.setBorder(new?EmptyBorder(5?5?5?5));
setContentPane(contentPane);
contentPane.setLayout(null);
JScrollPane?scrollPane?=?new?JScrollPane();
scrollPane.setBounds(10?10?625?248);
contentPane.add(scrollPane);
resultArea?=?new?JTextArea();
resultArea.setFont(new?Font(“Monospaced“?Font.PLAIN?16));
resultArea.setLineWrap(true);
scrollPane.setViewportView(resultArea);
mingwen?=?new?JTextArea();
mingwen.setFont(new?Font(“Monospaced“?Font.PLAIN?18));
mingwen.setBounds(101?387?413?34);
contentPane.add(mingwen);
des=new?DES();
//為發送按鈕添加消息響應函數
JButton?sendbtn?=?new?JButton(“\u53D1\u9001“);
sendbtn.addActionListener(new?ActionListener()?{
public?void?actionPerformed(ActionEvent?e)?{
text=mingwen.getText();
try?{
DataOutputStream?dos=new?DataOutputStream(socket.getOutputStream());
resultArea.setText(text);
//?利用des進行加密并發送密文
des.setMingwen(text);
try?{
byte?[]ctext=des.encrypt();//加密
int?len;
len=ctext.length;
???????? dos.writeInt(len);
???????? System.out.println(“len=“+len);
dos.write(ctext?0?len);
}?catch?(Exception?e1)?{
e1.printStackTrace();
}
//dos.writeUTF(text);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2014-02-09?09:37??DES\
?????文件?????????301??2014-02-09?09:37??DES\.classpath
?????文件?????????384??2014-02-09?09:37??DES\.project
?????目錄???????????0??2014-02-09?09:37??DES\.settings\
?????文件?????????629??2014-02-09?09:37??DES\.settings\org.eclipse.jdt.core.prefs
?????目錄???????????0??2014-02-09?09:37??DES\bin\
?????文件?????????677??2014-02-09?09:37??DES\bin\CLient$1.class
?????文件????????1966??2014-02-09?09:37??DES\bin\CLient$2.class
?????文件?????????921??2014-02-09?09:37??DES\bin\CLient$3.class
?????文件?????????570??2014-02-09?09:37??DES\bin\CLient$4.class
?????文件????????1530??2014-02-09?09:37??DES\bin\CLient$5.class
?????文件????????6361??2014-02-09?09:37??DES\bin\CLient.class
?????文件????????3202??2014-02-09?09:37??DES\bin\DES.class
?????文件?????????282??2014-02-09?09:37??DES\key.dat
?????文件??????????24??2014-02-09?09:37??DES\keykb.dat
?????文件??????????16??2014-02-09?09:37??DES\SEnc.dat
?????目錄???????????0??2014-02-09?09:37??DES\src\
?????文件????????7038??2014-02-09?09:37??DES\src\CLient.java
?????文件????????3214??2014-02-09?09:37??DES\src\DES.java
- 上一篇:Java寫的西洋跳棋人機對戰
- 下一篇:實現了LRU算法的緩存
評論
共有 條評論