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

📄 mainframe.java~285~

📁 DES加密算法实例1
💻 JAVA~285~
📖 第 1 页 / 共 2 页
字号:
package des;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.lang.String;import com.borland.jbcl.layout.*;/** * <p>Title: DES</p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2004</p> * <p>Company: ShiJiajia</p> * @author not attributable * @version 1.0 */public class MainFrame extends JFrame {  JPanel contentPane;  XYLayout xYLayout1 = new XYLayout();  JLabel jLabel1 = new JLabel();  JTextField jTextField1 = new JTextField();  JLabel jLabel2 = new JLabel();  JButton jButton1 = new JButton();  JButton jButton2 = new JButton();  JLabel jLabel3 = new JLabel();  JLabel jLabel4 = new JLabel();  JButton jButton3 = new JButton();  JScrollPane jScrollPane1 = new JScrollPane();  JScrollPane jScrollPane2 = new JScrollPane();  JTextArea jTextArea1 = new JTextArea();  JTextArea jTextArea2 = new JTextArea();int [][] s1={{14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7},              {0,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8},              {4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,0},              {15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13}};int [][] s2={{15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10},              {3,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5},              {0,14,7,11,10,4,13,1,5,8,12,6,9,3,2,15},              {13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9}};int [][] s3={{10,0,9,14,6,3,15,5,1,13,12,7,11,4,2,8},              {13,7,0,9,3,4,6,10,2,8,5,14,12,11,15,1},              {13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7},              {1,10,13,0,6,9,8,7,4,15,14,3,11,5,2,12}};int [][] s4={{7,13,14,3,0,6,9,10,1,2,8,5,11,12,4,15},              {13,8,11,5,6,15,0,3,4,7,2,12,1,10,14,9},              {10,6,9,0,12,11,7,13,15,1,3,14,5,2,8,4},              {3,15,0,6,10,1,13,8,9,4,5,11,12,7,2,14}};int [][] s5={{2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9},              {14,11,2,12,4,7,13,1,5,0,15,10,3,9,8,6},              {4,2,1,11,10,13,7,8,15,9,12,5,6,3,0,14},              {11,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3}};int [][] s6={{12,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11},              {10,15,4,2,7,12,9,5,6,1,13,14,0,11,3,8},              {9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6},              {4,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13}};int [][] s7={{4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1},              {13,0,11,7,4,9,1,10,13,3,5,12,2,15,8,6},              {1,4,11,13,12,3,7,14,10,15,6,8,0,5,9,2},              {6,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12}};int [][] s8={{13,2,8,4,6,15,11,1,10,9,3,14,5,0,12,7},              {1,15,13,8,10,3,7,4,12,5,6,11,0,14,9,2},              {7,11,4,1,9,12,14,2,0,6,10,13,15,3,5,8},              {2,1,14,7,4,10,8,13,15,12,9,0,3,5,6,11}};String keyword="";String c0="",d0="";String cn="",dn="";String cd="";//char key[][]=new char[16][48];String key[]=new String[16];  JButton jButton4 = new JButton();  //Construct the frame  public MainFrame() {    enableEvents(AWTEvent.WINDOW_EVENT_MASK);    try {      jbInit();    }    catch(Exception e) {      e.printStackTrace();    }  }  //Component initialization  private void jbInit() throws Exception  {    contentPane = (JPanel) this.getContentPane();    jLabel1.setFont(new java.awt.Font("Dialog", 1, 20));    jLabel1.setDebugGraphicsOptions(0);    jLabel1.setText("DES加密系统");    contentPane.setLayout(xYLayout1);    this.setLocale(java.util.Locale.getDefault());    this.setSize(new Dimension(400, 300));    this.setTitle("DES加密");    jTextField1.setBackground(Color.white);    jTextField1.setMinimumSize(new Dimension(4, 22));    jTextField1.setToolTipText("");    jTextField1.setVerifyInputWhenFocusTarget(true);    jTextField1.setMargin(new Insets(0, 0, 0, 0));    jTextField1.setSelectionEnd(0);    jTextField1.setText("");    jTextField1.setColumns(0);    jTextField1.setScrollOffset(0);    jTextField1.addKeyListener(new MainFrame_jTextField1_keyAdapter(this));    jLabel2.setFont(new java.awt.Font("Dialog", 0, 16));    jLabel2.setText("请输入密钥:");    contentPane.setMaximumSize(new Dimension(2147483647, 2147483647));    contentPane.setMinimumSize(new Dimension(316, 200));    contentPane.setPreferredSize(new Dimension(366, 300));    contentPane.setRequestFocusEnabled(true);    contentPane.setToolTipText("");    jButton1.setFont(new java.awt.Font("Dialog", 0, 13));    jButton1.setText("清除秘钥");    jButton1.addActionListener(new MainFrame_jButton1_actionAdapter(this));    jButton2.setEnabled(true);    jButton2.setFont(new java.awt.Font("Dialog", 0, 12));    jButton2.setText("生成加密密钥");    jButton2.addActionListener(new MainFrame_jButton2_actionAdapter(this));    jLabel3.setFont(new java.awt.Font("Dialog", 0, 14));    jLabel3.setText("原文:");    jLabel4.setFont(new java.awt.Font("Dialog", 0, 14));    jLabel4.setText("结果:");    jButton3.setEnabled(true);    jButton3.setFont(new java.awt.Font("Dialog", 0, 12));    jButton3.setFocusPainted(true);    jButton3.setText("生成解密密匙");    jButton3.addActionListener(new MainFrame_jButton3_actionAdapter(this));    jTextArea1.setText("");    jTextArea1.setLineWrap(true);    jTextArea2.setLineWrap(true);    jButton4.setFont(new java.awt.Font("Dialog", 0, 14));    jButton4.setText("加/解  密");    jButton4.addActionListener(new MainFrame_jButton4_actionAdapter(this));    contentPane.add(jLabel2, new XYConstraints(37, 52, 97, -1));    contentPane.add(jLabel1, new XYConstraints(132, 11, 148, -1));    contentPane.add(jTextField1, new XYConstraints(142, 51, 100, 24));    contentPane.add(jLabel4, new XYConstraints(15, 198, 41, 30));    contentPane.add(jLabel3, new XYConstraints(14, 136, 42, 33));    contentPane.add(jScrollPane2,      new XYConstraints(64, 194, 295, 49));    jScrollPane2.getViewport().add(jTextArea2, null);    contentPane.add(jScrollPane1, new XYConstraints(65, 135, 294, 49));    contentPane.add(jButton1, new XYConstraints(260, 47, -1, 27));    contentPane.add(jButton2,  new XYConstraints(12, 90, 109, 23));    contentPane.add(jButton3, new XYConstraints(128, 89, 109, 23));    contentPane.add(jButton4,    new XYConstraints(250, 88, 104, 23));    jScrollPane1.getViewport().add(jTextArea1, null);  }  //Overridden so we can exit when window is closed  protected void processWindowEvent(WindowEvent e) {    super.processWindowEvent(e);    if (e.getID() == WindowEvent.WINDOW_CLOSING) {      System.exit(0);    }  }  void jTextField1_keyPressed(KeyEvent e) {if (this.jTextField1.getText().length()>=8){this.jTextField1.setEditable(false);}  }  void jButton1_actionPerformed(ActionEvent e) {this.jTextField1.setEditable(true);this.jTextField1.setText("");  }  void jButton2_actionPerformed(ActionEvent e) {for(int nw=0;nw<=7;nw++){int n=(byte)(this.jTextField1.getText().charAt(nw));String str="";int temp;while(n>0){temp=n%2;if (temp==0){str="0"+str;}else{str="1"+str;}n=(n-temp)/2;}while(str.length()<8){str="0"+str;}for(int wn=0;wn<=7;wn++){keyword=keyword+str.charAt(wn);}//System.out.println(str);//System.out.println(keyword);}keyword="0"+keyword;//System.out.println(keyword);c0=c0+keyword.charAt(57)+keyword.charAt(49)+keyword.charAt(41)+keyword.charAt(33)+keyword.charAt(25)+keyword.charAt(17)+keyword.charAt(9)+      keyword.charAt(1)+keyword.charAt(58)+keyword.charAt(50)+keyword.charAt(42)+keyword.charAt(34)+keyword.charAt(26)+keyword.charAt(18)+      keyword.charAt(10)+keyword.charAt(2)+keyword.charAt(59)+keyword.charAt(51)+keyword.charAt(43)+keyword.charAt(35)+keyword.charAt(27)+      keyword.charAt(19)+keyword.charAt(11)+keyword.charAt(3)+keyword.charAt(60)+keyword.charAt(52)+keyword.charAt(44)+keyword.charAt(36);d0=d0+keyword.charAt(63)+keyword.charAt(55)+keyword.charAt(47)+keyword.charAt(39)+keyword.charAt(31)+keyword.charAt(23)+keyword.charAt(15)+      keyword.charAt(7)+keyword.charAt(62)+keyword.charAt(54)+keyword.charAt(46)+keyword.charAt(38)+keyword.charAt(30)+keyword.charAt(22)+      keyword.charAt(14)+keyword.charAt(6)+keyword.charAt(61)+keyword.charAt(53)+keyword.charAt(45)+keyword.charAt(37)+keyword.charAt(29)+      keyword.charAt(21)+keyword.charAt(13)+keyword.charAt(5)+keyword.charAt(28)+keyword.charAt(20)+keyword.charAt(12)+keyword.charAt(4);//System.out.println("c0 is "+c0);//System.out.println("d0 is "+d0);//System.out.println("");for(int n=1;n<=16;n++)  {  switch(n){  case 1:case 2:case 9:case 16:  {cn=c0.substring(1)+c0.charAt(0);   dn=d0.substring(1)+d0.charAt(0);//   System.out.println("cn is "+cn);//   System.out.println("dn is "+dn);   c0=cn;   d0=dn;  break;}  default:{    cn=c0.substring(2)+c0.charAt(0)+c0.charAt(1);    dn=d0.substring(2)+d0.charAt(0)+c0.charAt(1);//    System.out.println("cn is "+cn);//    System.out.println("dn is "+dn);  }}cd=cn.concat(dn);cd="0"+cd;//System.out.println(cd);/////////////////////////////////keyword="";keyword=keyword+cd.charAt(14)+cd.charAt(17)+cd.charAt(11)+cd.charAt(24)+cd.charAt(1)+cd.charAt(5)+cd.charAt(3)+cd.charAt(28)+cd.charAt(15)+cd.charAt(6)+cd.charAt(21)+cd.charAt(10)+cd.charAt(23)+cd.charAt(19)+cd.charAt(12)+cd.charAt(4)+cd.charAt(26)+cd.charAt(8)+cd.charAt(16)+cd.charAt(7)+cd.charAt(27)+cd.charAt(20)+cd.charAt(13)+cd.charAt(2)+cd.charAt(41)+cd.charAt(52)+cd.charAt(31)+cd.charAt(37)+cd.charAt(47)+cd.charAt(55)+cd.charAt(30)+cd.charAt(40)+cd.charAt(51)+cd.charAt(45)+cd.charAt(33)+cd.charAt(48)+cd.charAt(44)+cd.charAt(49)+cd.charAt(39)+cd.charAt(56)+cd.charAt(34)+cd.charAt(53)+cd.charAt(46)+cd.charAt(42)+cd.charAt(50)+cd.charAt(36)+cd.charAt(29)+cd.charAt(32);key[n-1]=keyword;//System.out.println("keyword is "+keyword);System.out.println("key"+n+" is "+key[n-1]);/////////////////////////////////c0=cn;d0=dn;  }}  void jButton3_actionPerformed(ActionEvent e) {String s="000011110100000000000001010000100001001111101001";String rs="";for(int n=1;n<=8;n++)    {String sw="";      switch  (n)      { case 1: {sw=sw+s.substring(0,6); break;}       case 2: {sw=sw+s.substring(6,12); break;}       case 3: {sw=sw+s.substring(12,18); break;}       case 4: {sw=sw+s.substring(18,24); break;}       case 5: {sw=sw+s.substring(24,30); break;}       case 6: {sw=sw+s.substring(30,36); break;}       case 7: {sw=sw+s.substring(36,42); break;}       case 8: {sw=sw+s.substring(42,48); break;}      }//      System.out.println(sw);int a=0,b=0,c=0;    if((sw.charAt(0)=='0')&&(sw.charAt(5)=='0')) {a=0;}    if((sw.charAt(0)=='0')&&(sw.charAt(5)=='1')) {a=1;}    if((sw.charAt(0)=='1')&&(sw.charAt(5)=='0')) {a=2;}    if((sw.charAt(0)=='1')&&(sw.charAt(5)=='1')) {a=3;}    if(sw.charAt(1)=='1'){b=b+8;}    if(sw.charAt(2)=='1'){b=b+4;}    if(sw.charAt(3)=='1'){b=b+2;}    if(sw.charAt(4)=='1'){b=b+1;}//System.out.println("a="+a+" b="+b);    switch(n)    { case 1:{c=s1[a][b];break;}      case 2:{c=s2[a][b];break;}      case 3:{c=s3[a][b];break;}      case 4:{c=s4[a][b];break;}      case 5:{c=s5[a][b];break;}      case 6:{c=s6[a][b];break;}      case 7:{c=s7[a][b];break;}      case 8:{c=s8[a][b];break;}    }//System.out.println(n+": c="+c);    switch (c)    {    case  0:{rs=rs+"0000";break;}    case  1:{rs=rs+"0001";break;}

⌨️ 快捷键说明

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