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

📄 playfair1.java

📁 Play Fair in java encrption and decryption file
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    }//GEN-LAST:event_srcPathActionPerformed    private void srcBrowseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_srcBrowseActionPerformed        srcInt=src.showOpenDialog(this);        if(srcInt!=src.APPROVE_OPTION) {            javax.swing.JOptionPane.showMessageDialog(this,"Please Rechoose Source File ","Bad Selection File",javax.swing.JOptionPane.ERROR_MESSAGE);            return;        }        srcFile=src.getSelectedFile();        srcPath.setText(srcFile.getPath());}//GEN-LAST:event_srcBrowseActionPerformed    private void desBrowseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_desBrowseActionPerformed        desInt=des.showSaveDialog(this);        if(desInt!=des.APPROVE_OPTION) {            javax.swing.JOptionPane.showMessageDialog(this,"Please Rechoose Destination File","Bad Selection File",javax.swing.JOptionPane.ERROR_MESSAGE);            return;        }        desFile=des.getSelectedFile();        desPath.setText(desFile.getPath());}//GEN-LAST:event_desBrowseActionPerformed    private void EncodeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_EncodeActionPerformedgetkey();        befor=after="";        try {            read=new java.io.FileInputStream(srcFile);                     char c[] = new char[100];         char c1[]= new char[100];        char c2[]= new char[100];        int len = 0;        int ch=-1;            while((ch=read.read())!=-1)            {                befor+=(char)ch;            }            read.close();            read=null;            for(int i1=0;i1<befor.length();i1++) {                 ch=(int)befor.charAt(i1);             if(ch>='a' && ch<='z' ){                c[len] =(char) ch;                len++;            }               int flag = 0;        int nx = 0;                int size = len;        System.out.println(size);        for( int i = 0; i < size; i++){             c1[i] =  c[i];        }        for( int i = 0; i < size/2; i++ ){            if(flag != 0){                i = 0;                flag = 0;            }            if(c1[i*2]==c1[i*2+1] ){                for(int j = size ;j>=i*2+1;j--){                    System.out.println(j);                    c1[j] = c1[j - 1];                }                    c1[i*2+1] = 'x';                    nx++;                    flag=1;                    ++size;            }        }        if( (size%2)!= 0){            System.out.println(size);            c1[size] = 'x';            size=size + 1;        }        int r1 = 0, l1 = 0, r2 = 0, l2 = 0;        for(int g = 0; g < size/2; g++){            for(int i = 0; i < 5; i++){                for(int j = 0; j < 5; j++){                    if(c1[2*g] == key[i][j]){                        r1 = i;                        l1 = j;                    }                    if(c1[2*g+1]== key[i][j]){                        r2 = i;                        l2 = j;                    }                }            }            if(r2 == r1){                c2[2*g] = key[r1][ (l1+1) % 5];                c2[2*g+1]=key[r2][ (l2+1) % 5];            }            else if(l1 == l2){                c2[2*g] = key[(r1+1) % 5][l1];                c2[2*g+1]=key[(r2+1) % 5][l2];            }            else{                c2[2*g] = key[r1][l2];                c2[2*g+1]=key[r2][l1];            }        }        char decode[] = new char[size];        for(int i = 0; i < size; i++){           //after+= (char)c2[i];            decode[i] = c2[i];             //after+=(char)decode[i];        }         after=new String(decode);                   }            write=new java.io.FileOutputStream(desFile);            for(int i=0;i<after.length();i++) {                write.write(after.charAt(i));            }            write.close();            write=null;        } catch(java.io.IOException e) {            javax.swing.JOptionPane.showMessageDialog(this,e,"Bad Selection File",javax.swing.JOptionPane.ERROR_MESSAGE);            javax.swing.JOptionPane.showMessageDialog(this,"Process completed UnSuccessfully","Process message",javax.swing.JOptionPane.INFORMATION_MESSAGE);            return;        }        javax.swing.JOptionPane.showMessageDialog(this,"Process completed Successfully","Process message",javax.swing.JOptionPane.INFORMATION_MESSAGE);}//GEN-LAST:event_EncodeActionPerformed    private void DecodeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_DecodeActionPerformedgetkey();        befor=after="";        try {            read=new java.io.FileInputStream(srcFile);            char c[] = new char[100];            char c1[]= new char[100];int len=0;                  int ch=-1;// used in reading from file Process            while((ch=read.read())!=-1) {                befor+=(char)ch;            }            read.close();            read=null;            for(int i1=0;i1<befor.length();i1++) {                ch=(int)befor.charAt(i1);                 if(ch>='a' && ch<='z' ){                c[len] =(char) ch;                len++;            }                int size = befor.length();                 for( int i = 0; i < size; i++){             c1[i] =  c[i];        }        int r1 = 0, l1 = 0, r2 = 0, l2 = 0;        for(int n = 0; n < size/2; n++){            for(int i = 0; i < 5; i++){                for(int j = 0; j < 5; j++){                    if(c[2*n] == key[i][j]){                        r1 = i;                        l1 = j;                    }                    if(c[2*n + 1] == key[i][j]){                        r2 = i;                        l2 = j;                    }                }            }                       if(r1 == r2){                if(l1 == 0 ){ l1 = 5;}                c1[2*n] = key[r1][(l1 - 1)%5];                if(l2 == 0 ){ l2 = 5;}                c1[2*n  + 1] = key[r2][(l2 - 1)%5];            }            else if(l1 == l2){                if(r1 == 0){ r1 = 5;}                c1[2*n] = key[(r1 - 1)%5][l1];                if(r2 == 0){ r2 = 5;}                c1[2*n + 1] = key[(r2 - 1)%5][l2];            }            else{            c1[2*n] = key[r1][l2];            c1[2*n + 1] = key[r2][l1];            }        }        char c2[]= new char[size];        for(int j = 0; j < size; j++ ){            c2[j] = c1[j];        }               int n0=0,count0=0;        for(int i=1;i<c2.length-1;i++){           if(c2[i]=='x'){               if(c2[i-1]==c2[i+1])               count0++;           }}       if(c2[c2.length-1]=='x')           count0++;        char[]c3=new char[c2.length-count0];c3[n0++]=c2[0];       for(int i=1;i<c2.length-1;i++){           if(c2[i]!='x')               c3[n0++]=c2[i];           else            if(c2[i-1]!=c2[i+1]){           c3[n0++]=c2[i];           }       }       if(c2[c2.length-1]!='x')           c3[n0++]=c2[c2.length-1];        after=new String(c3);                        }            write=new java.io.FileOutputStream(desFile);            for(int i=0;i<after.length();i++) {                write.write(after.charAt(i));            }            write.close();            write=null;        } catch(java.io.IOException e) {            javax.swing.JOptionPane.showMessageDialog(this,e,"Bad Selection File",javax.swing.JOptionPane.ERROR_MESSAGE);            javax.swing.JOptionPane.showMessageDialog(this,"Process completed UnSuccessfully","Process message",javax.swing.JOptionPane.INFORMATION_MESSAGE);            return;        }        javax.swing.JOptionPane.showMessageDialog(this,"Process completed Successfully","Process message",javax.swing.JOptionPane.INFORMATION_MESSAGE);    }//GEN-LAST:event_DecodeActionPerformed    /**    * @param args the command line arguments    */    public static void main(String args[]) {        java.awt.EventQueue.invokeLater(new Runnable() {            public void run() {                new playfair1().setVisible(true);            }        });    }    // Variables declaration - do not modify//GEN-BEGIN:variables    private javax.swing.JButton Decode;    private javax.swing.JButton Encode;    private javax.swing.JButton desBrowse;    private javax.swing.JTextField desPath;    private javax.swing.JLabel jLabel1;    private javax.swing.JLabel jLabel2;    private javax.swing.JLabel jLabel3;    private javax.swing.JButton srcBrowse;    private javax.swing.JTextField srcPath;    private javax.swing.JTextField txtKey;    // End of variables declaration//GEN-END:variables}

⌨️ 快捷键说明

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