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

📄 i_p_lab3view.java

📁 RSA encrypting algorithm
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                .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 + -