}//处理客户端发送消息
else if(e.getSource()==CNo)
{CMessage.setText("");}//客户端取消消息
else if(e.getSource()==SNo)
{ SMessage.setText(""); }//服务器端取消发送消息
else if(e.getSource()==SInit)
{ try{server=new ServerSocket(2007); }
catch(IOException e1)
{JOptionPane.showMessageDialog(this,”出错了:"+e1,"Warning",JOptionPane.WARNING_MESSAGE);
}SShow.appendText("服务器已经启动\n");
}//启动服务器
else if(e.getSource()==CInit)
{ try { Cclient=new Socket("localhost",2007); }
catch(IOException e1){
JOptionPane.showMessageDialog(this,"出错了:"+e1,"Warning",JOptionPane.WARNING_MESSAGE); }
CShow.appendText("客户端已经启动\n");}//启动客户端}
public void run()
{ while(true){if(Thread.currentThread()==ThreadServerSend){try{
Sout=new DataOutputStream(Sclient.getOutputStream());
Sout.writeUTF(des.Encrypt(SMessage.getText()));}
catch(IOException e)
{JOptionPane.showMessageDialog(this,"出错了:"+e,"Warning",JOptionPane.WARNING_MESSAGE);}return;}
if(Thread.currentThread()==ThreadClientSend)
{try{Cout=new DataOutputStream(Cclient.getOutputStream());
Cout.writeUTF(des.Encrypt(CMessage.getText()));}
catch(IOException e){JOptionPane.showMessageDialog(this,"出错了:"+e,"Warning",JOptionPane.WARNING_MESSAGE);}return;}
if(Thread.currentThread()==ThreadServerReceive)
{try{if(flag){Sclient=server.accept();flag=false;}
Sin=new DataInputStream(Sclient.getInputStream());}
catch(IOException e)
{JOptionPane.showMessageDialog(this,"发生错误:"+e,"Warning",JOptionPane.WARNING_MESSAGE);}
try{s=Sin.readUTF();}catch(IOException e){}
SShow.appendText("客户端消息:"+des.Dencrypt(s));
SShow.appendText("\n");return;}
if (Thread.currentThread()==ThreadClientReceive){try{
Cin=new DataInputStream(Cclient.getInputStream());}catch(IOException e)
{JOptionPane.showMessageDialog(this,"发生错误:"+e,"Warning",JOptionPane.WARNING_MESSAGE);}
try{s=Cin.readUTF();}catch(IOException e){}
CShow.appendText("服务器消息:"+des.Dencrypt(s));
CShow.appendText("\n");return;}}}}
3.3.2加密演显模块
该模块的主要功能是提供一个加密演示的效果,在输入框中输入明文点确定按钮将显示密文,确定按钮中能智能的检测用户输入的消息是明文还是密文,如果是明文则加密,如果是密文则解谜,体现DES算法的可逆性.对于刚刚生成的密文,我们把它复制下来粘贴到输入框点解密可恢复出明文.其效果图如图3-2所示:
该功能模块实现的代码如下:
public class DemoFacade extends Panel implements ActionListener{
String Bufferen="",Bufferde="",Bufferswap="";
int FORMAT=68;int EN_FLAG=0,DE_FLAG=0;
int EN_FLAG_FILE=0,DE_FLAG_FILE=0;
String BEFOR_FILEBUFFER,AFTER_FILEBUFFER;
TextField input;Button buttonen;Button buttonde;Button buttoncon;Button buttond;
Button Cancel; Button clear;Label labelin; public static TextArea textarea;
Panel panel;Des des=new Des();
public DemoFacade() {
panel=new Panel(); Panel p1=new Panel();Panel p2=new Panel();Panel p3=new Panel();
panel.setLayout(new BorderLayout());labelin=new Label
首页 上一页 4 5 6 7 8 9 下一页 尾页 7/9/9
免费DES算法的可视化程序的实现(七)由免费论文网(www.jaoyuw.com)会员上传。