📄 playfair1.java
字号:
}//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 + -