📄 i_p_lab4view.java
字号:
for (int k1=1; k1<=R.length(); k1++) for (int i=0; i<8; i++) for (int j=0; j<6; j++) if (ras[i][j]==k1) matr_e[i][j]=R.substring(k1-1, k1);R=""; for (int i=0; i<8; i++) for (int j=0; j<6; j++) R=R+matr_e[i][j]; System.out.println ("последовательность R "+R); //сдвиг for (int z=0; z<si[t]; z++) {C=Sdvig(C); D=Sdvig(D);}CD=C+D; //заполнение матрицы K битамиmatr_k=new String[8][7];for (int k1=1; k1<=CD.length(); k1++) for (int i=0; i<8; i++) for (int j=0; j<6; j++) if (k[i][j]==k1) matr_k[i][j]=CD.substring(k1-1, k1);//создание последовательностей C1D1C1D1=""; for (int i=0; i<8; i++) for (int j=0; j<6; j++) C1D1=C1D1+matr_k[i][j];System.out.println ("последовательность C1D1 "+C1D1);sum="";for (int i=0; i<R.length();i++){ xor=Integer.parseInt(R.substring(i, i+1))^Integer.parseInt(C1D1.substring(i, i+1)); sum=sum+xor;}System.out.println ("последовательность sum(xor) "+sum);//преобразования с использованием матриц Spreobr="";for (int i=0; i<8; i++){ int m[][]; m=new int [4][16]; m=(int[][])l_m_s.get(i); //System.out.println ("последовательность "+sum.substring(0, 6)); // System.out.println ("матрица S "+sum.substring(0, 6)); String st=""; st=sum.substring(0, 1); st=st+sum.substring(5, 6); int nom_st=ConvertToDec (st); //System.out.println ("nom_st "+nom_st); int kol=ConvertToDec (sum.substring(1, 5)); //System.out.println ("kol "+kol); String chast=""; // System.out.println ("m "+m[nom_st][kol]); chast=Integer.toBinaryString(m[nom_st][kol]); if (chast.length()<4) for (int j=0; j<=4-chast.length(); j++) chast="0"+chast; if (chast.length()<4) chast="0"+chast; // System.out.println ("chast "+chast); preobr=preobr+chast; sum=sum.substring(6, sum.length());}System.out.println ("последовательность preobr "+preobr);//заполнение битами функции перестановки Рmatr_p=new String[8][4];for (int k1=1; k1<=preobr.length(); k1++) for (int i=0; i<8; i++) for (int j=0; j<4; j++) if (p[i][j]==k1) matr_p[i][j]=preobr.substring(k1-1, k1);//результат функции шифрованияshifr="";for (int i=0; i<8; i++) for (int j=0; j<4; j++) shifr=shifr+matr_p[i][j];System.out.println ("shifr "+shifr);R="";for (int i=0; i<shifr.length();i++){ xor=Integer.parseInt(shifr.substring(i, i+1))^Integer.parseInt(L.substring(i, i+1)); R=R+xor;}L=L1;System.out.println ("последовательность L "+L);System.out.println ("последовательность R "+R);}String LR=L+R;//System.out.println ("LR "+LR);//заполнение битами матрицы конечной перестановкиString matr_end[][];matr_end=new String[8][8];for (int k1=1; k1<=LR.length(); k1++) for (int i=0; i<8; i++) for (int j=0; j<8; j++) if (matr_kon[i][j]==k1) matr_end[i][j]=LR.substring(k1-1, k1);//результат шифрованияfor (int i=0; i<8; i++) for (int j=0; j<8; j++) rezultat1=rezultat1+matr_end[i][j];System.out.println ("зашифрованная строка "+rezultat1);System.out.println (); } C16=C;D16=D; //System.out.println ("зашифрованная строка "+rezultat1);System.out.println ("зашифрованная строка длина"+rezultat1.length());//эелемнты ключа шифра//запись в файлString f_n=chooser.getSelectedFile().getAbsolutePath(); f_n=f_n.substring(0, f_n.length()-4); f_n=f_n+"1"+".txt"; try { WriteFile(f_n, rezultat1); } catch (IOException ex) { Logger.getLogger(i_p_lab4View.class.getName()).log(Level.SEVERE, null, ex); }}private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed// TODO add your handling code here:System.out.println(ConvertToDec (Integer.toBinaryString(11)));//GEN-LAST:event_jButton2ActionPerformedrezultat1="";//считывание данных из файла //выбор файла String s="",strk="",strk_unikod="",strk_bin=""; JFileChooser chooser = new JFileChooser(); int returnVal = chooser.showOpenDialog(chooser); if(returnVal == JFileChooser.APPROVE_OPTION) { //jTextField2.setText(chooser.getSelectedFile().getName()); s=chooser.getSelectedFile().getAbsolutePath();} //чтение файл try { Scanner in = new Scanner(new File(s)); while (in.hasNext()) {rezultat1=rezultat1+in.nextLine(); }} catch ( Exception ex ) {ex.printStackTrace();} System.out.println ("rezultat1="+rezultat1); String ishodn="";//-----------------------Расшифрование------------------------------------------int predel=rezultat1.length()/64;for (int time=0; time<predel; time++){String rezultat=rezultat1.substring(0, 64); rezultat1=rezultat1.substring(64, rezultat1.length()); System.out.println ("rezultat "+rezultat);//эелемнты ключа шифраC=C16;D=D16;//заполнение битами матрицы конечной перестановкиString matr_end[][];matr_end=new String[8][8];int poz=0;for (int i=0; i<8; i++) for (int j=0; j<8; j++) { matr_end[i][j]=rezultat.substring(poz, poz+1); poz++; }String LR="";//матрица конечной перестановкиfor (int k1=1; k1<=rezultat.length(); k1++) for (int i=0; i<8; i++) for (int j=0; j<8; j++) if (matr_kon[i][j]==k1) LR=LR+matr_end[i][j];System.out.println ("LR "+LR);String L=LR.substring(0, 32);System.out.println ("L "+L);String R=LR.substring(32, 64);System.out.println ("R "+R);//цикл шифрования---------------------------------------------------------------for (int t=15; t>=0; t--){ System.out.println (); System.out.println ("-------- итерация -------- t= "+t); System.out.println (); //заполнение матрицы расширения битами String R1=R;String L1=L;String matr_e[][];matr_e=new String[8][6];for (int k1=1; k1<=R.length(); k1++) for (int i=0; i<8; i++) for (int j=0; j<6; j++) if (ras[i][j]==k1) matr_e[i][j]=L.substring(k1-1, k1);R=""; for (int i=0; i<8; i++) for (int j=0; j<6; j++) R=R+matr_e[i][j]; System.out.println ("последовательность R "+R); String CD=C+D; //заполнение матрицы K битамиString matr_k[][];matr_k=new String[8][7];for (int k1=1; k1<=CD.length(); k1++) for (int i=0; i<8; i++) for (int j=0; j<6; j++) if (k[i][j]==k1) matr_k[i][j]=CD.substring(k1-1, k1);//создание последовательностей C1D1String C1D1=""; for (int i=0; i<8; i++) for (int j=0; j<6; j++) C1D1=C1D1+matr_k[i][j];System.out.println ("последовательность C1D1 "+C1D1);String sum="";for (int i=0; i<R.length();i++){ int xor=Integer.parseInt(R.substring(i, i+1))^Integer.parseInt(C1D1.substring(i, i+1)); sum=sum+xor;}System.out.println ("последовательность sum(xor) "+sum);//преобразования с использованием матриц SString preobr="";for (int i=0; i<8; i++){ int m[][]; m=new int [4][16]; m=(int[][])l_m_s.get(i); //System.out.println ("последовательность "+sum.substring(0, 6)); // System.out.println ("матрица S "+sum.substring(0, 6)); String st=""; st=sum.substring(0, 1); st=st+sum.substring(5, 6); int nom_st=ConvertToDec (st); //System.out.println ("nom_st "+nom_st); int kol=ConvertToDec (sum.substring(1, 5)); //System.out.println ("kol "+kol); String chast=""; // System.out.println ("m "+m[nom_st][kol]); chast=Integer.toBinaryString(m[nom_st][kol]); if (chast.length()<4) for (int j=0; j<=4-chast.length(); j++) chast="0"+chast; if (chast.length()<4) chast="0"+chast; // System.out.println ("chast "+chast); preobr=preobr+chast; sum=sum.substring(6, sum.length());}System.out.println ("последовательность preobr "+preobr);//заполнение битами функции перестановки РString matr_p[][];matr_p=new String[8][4];for (int k1=1; k1<=preobr.length(); k1++) for (int i=0; i<8; i++) for (int j=0; j<4; j++) if (p[i][j]==k1) matr_p[i][j]=preobr.substring(k1-1, k1);//результат функции шифрованияString shifr="";for (int i=0; i<8; i++) for (int j=0; j<4; j++) shifr=shifr+matr_p[i][j];System.out.println ("shifr "+shifr);//сдвиг for (int z=0; z<si[t]; z++) {C=obr_Sdvig(C); D=obr_Sdvig(D);}L="";for (int i=0; i<shifr.length();i++){ int xor=Integer.parseInt(shifr.substring(i, i+1))^Integer.parseInt(R1.substring(i, i+1)); L=L+xor;}System.out.println ("последовательность L "+L);System.out.println ("последовательность R "+L1);R=L1;}LR=L+R;//заполнение битами матрицы конечной перестановкиString matr_n[][];matr_n=new String[8][8];poz=0;for (int i=0; i<8; i++) for (int j=0; j<8; j++) { matr_n[i][j]=LR.substring(poz, poz+1); poz++; }//матрица конечной перестановкиfor (int k1=1; k1<=LR.length(); k1++) for (int i=0; i<8; i++) for (int j=0; j<8; j++) if (matr_nach[i][j]==k1) ishodn=ishodn+matr_n[i][j];System.out.println ("ishodn "+ishodn);}//System.out.println ("ishodn "+ishodn);System.out.println ("ishodn dlina"+ishodn.length());String simvols="";int predel1=ishodn.length()/12;for (int i=0; i<predel1; i++){ if (!((ishodn.substring(0, 12).compareTo("000000000000"))==0)) simvols=simvols + (char) ConvertToDec(ishodn.substring(0, 12)); ishodn=ishodn.substring(12, ishodn.length());}System.out.println ("Simvols "+simvols);//запись в файлString f_n=chooser.getSelectedFile().getAbsolutePath(); f_n=f_n.substring(0, f_n.length()-4); f_n=f_n+"2"+".txt"; try { WriteFile(f_n, simvols); } catch (IOException ex) { Logger.getLogger(i_p_lab4View.class.getName()).log(Level.SEVERE, null, ex); } } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JPanel mainPanel; private javax.swing.JMenuBar menuBar; private javax.swing.JProgressBar progressBar; private javax.swing.JLabel statusAnimationLabel; private javax.swing.JLabel statusMessageLabel; private javax.swing.JPanel statusPanel; // End of variables declaration//GEN-END:variables private final Timer messageTimer; private final Timer busyIconTimer; private final Icon idleIcon; private final Icon[] busyIcons = new Icon[15]; private int busyIconIndex = 0; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -