📄 i_p_lab3view.java
字号:
.addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(statusAnimationLabel) .addContainerGap()) ); statusPanelLayout.setVerticalGroup( statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(statusPanelLayout.createSequentialGroup() .addComponent(statusPanelSeparator, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(statusMessageLabel) .addComponent(statusAnimationLabel) .addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(3, 3, 3)) ); setComponent(mainPanel); setMenuBar(menuBar); setStatusBar(statusPanel); }// </editor-fold>//GEN-END:initComponents //-------------шифрование---------------------------------------------------private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed// TODO add your handling code here: //считывание открытого ключа int n=Integer.parseInt(jTextField1.getText()); int e=Integer.parseInt(jTextField2.getText()); // int rez=Integer.parseInt(jTextField3.getText()); //считывание данных из файла //выбор файла String s="",strk="",strk_shifr=""; JFileChooser chooser = new JFileChooser(); int returnVal = chooser.showOpenDialog(chooser); if(returnVal == JFileChooser.APPROVE_OPTION) { //jTextField2.setText(chooser.getSelectedFile().getName()); s=chooser.getSelectedFile().getAbsolutePath();} //int i=10; //чтение файл//String st[];//st=new String[i]; try { Scanner in = new Scanner(new File(s)); while (in.hasNext()) {strk=strk+in.nextLine(); // System.out.println(strk); }} catch ( Exception ex ) {ex.printStackTrace();} System.out.println ("strk="+strk); BigInteger c,m,n1,otv; for (int i=0; i<strk.length(); i++) {int kod_sim=strk.substring(i,i+1).codePointAt(0); // System.out.println ("юникод символа="+kod_sim); // System.out.println ("символ="+((char)kod_sim)); m=BigInteger.valueOf(kod_sim); c=m.pow(e); n1=BigInteger.valueOf(n); c=c.mod(n1); strk_shifr=strk_shifr+c+" "; //System.out.println ("kod_sim="+kod_sim); } String f_n=chooser.getSelectedFile().getAbsolutePath(); f_n=f_n.substring(0, f_n.length()-4); f_n=f_n+"1"+".txt"; try { // System.out.println ("file name="+f_n); WriteFile(f_n, strk_shifr); } catch (IOException ex) { Logger.getLogger(I_p_lab3View.class.getName()).log(Level.SEVERE, null, ex); } System.out.println ("зашифрованаая строка="+strk_shifr); /*String s1=" "; System.out.println ("unicode_a="+s1.codePointAt(0));*/ //шифрование и разшифрование /* m=BigInteger.valueOf(150); c=m.pow(e); n1=BigInteger.valueOf(n); c=c.mod(n1); System.out.println("c="+c); otv=c.pow(rez); otv=otv.mod(n1); System.out.println("otv="+otv);*/}//GEN-LAST:event_jButton1ActionPerformed//---------------------------------генерация ключей-----------------------------private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed// TODO add your handling code here: //объявление переменных (ото ругается) int d=2,x=1,y=1,rez=0; int p=1,q=1,n=1,fn=1,e=1; while (!(d==1)) { //генерация ключей p=getSimpleNumber (10000); q=getSimpleNumber (10000); if (p==q) continue; if (p<10) continue; if (q<10) continue; //вычисляем модуль n=p*q; jTextField1.setText(Integer.toString(n)); //вычисляем функцию эллера fn=(p-1)*(q-1); //находим открытый показатель e=getSimpleNumber (10); jTextField2.setText(Integer.toString(e)); //находим секретный показатель //расширенный алгоритм Эвклида int a=fn; int b=e; // System.out.println("a="+a); //System.out.println("b="+b); if (b==0) {d=a; x=1; y=0; } else {int x2=1; int x1=0; int y2=0; int y1=1; int q1,r; while (b>0) {q1=a/b; r=a-q1*b; x=x2-q1*x1; y=y2-q1*y1; a=b; b=r; x2=x1; x1=x; y2=y1; y1=y; } d=a; x=x2; y=y2; rez=fn+y; } } jTextField3.setText(Integer.toString(rez)); System.out.println("p="+p); System.out.println("q="+q); System.out.println("n="+n); System.out.println("fn="+fn); System.out.println("e="+e); System.out.println("d="+d); System.out.println("x="+x); System.out.println("y="+y); System.out.println("rez="+rez);}//GEN-LAST:event_jButton2ActionPerformed//-------------------расшифровать-----------------------------------------------private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed// TODO add your handling code here: //считывание закрытого ключа int n=Integer.parseInt(jTextField1.getText()); // int e=Integer.parseInt(jTextField2.getText()); int rez=Integer.parseInt(jTextField3.getText()); //считывание данных из файла //выбор файла String s="",strk="",strk_ras_shifr=""; JFileChooser chooser = new JFileChooser(); int returnVal = chooser.showOpenDialog(chooser); if(returnVal == JFileChooser.APPROVE_OPTION) { //jTextField2.setText(chooser.getSelectedFile().getName()); s=chooser.getSelectedFile().getAbsolutePath();} //int i=10; //чтение файл//String st[];//st=new String[i]; try { Scanner in = new Scanner(new File(s)); while (in.hasNext()) {strk=strk+in.nextLine(); // System.out.println(strk); }} catch ( Exception ex ) {ex.printStackTrace();} System.out.println ("strk="+strk); BigInteger c,m,n1,otv; while (!(strk.indexOf(" ")==-1)) { int shifr_sim=Integer.parseInt(strk.substring(0,strk.indexOf(" "))); // System.out.println ("shifr_sim="+shifr_sim); c=BigInteger.valueOf(shifr_sim); n1=BigInteger.valueOf(n); otv=c.pow(rez); otv=otv.mod(n1); String sim=otv.toString(); int sim_zn=Integer.parseInt(sim); strk_ras_shifr=strk_ras_shifr+((char) sim_zn); strk=strk.substring(strk.indexOf(" ")+1, strk.length()); } System.out.println ("strk_ras_shifr="+strk_ras_shifr); 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, strk_ras_shifr); } catch (IOException ex) { Logger.getLogger(I_p_lab3View.class.getName()).log(Level.SEVERE, null, ex); } //шифрование и разшифрование /* m=BigInteger.valueOf(150); c=m.pow(e); n1=BigInteger.valueOf(n); c=c.mod(n1); System.out.println("c="+c); otv=c.pow(rez); otv=otv.mod(n1); System.out.println("otv="+otv);*/ }//GEN-LAST:event_jButton3ActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JTextField jTextField1; private javax.swing.JTextField jTextField2; private javax.swing.JTextField jTextField3; 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; private JDialog aboutBox;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -