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

📄 hraskeygenerator.java~

📁 文件加密解密程序。内含公开暗号(RAS)加解密工具
💻 JAVA~
📖 第 1 页 / 共 2 页
字号:
                privatekey = i;                jTextArea1.append("p = " + p + ",\tq = " + q + "\n");                jTextArea1.append("Public key is\t" + publickey + "\nPrivate key is\t" + privatekey + "\nModulus is\t" + modulus + "\n\n");                return;            }        }        jTextArea1.append("Could not find a private key in [ 0 - " + maximum + " ]\n");     }//GEN-LAST:event_jButton3ActionPerformed    private void jCheckBox1StateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jCheckBox1StateChanged        // 張棟僐乕僪傪偙偙偵捛壛偟傑偡:        // Random status changed        if (jCheckBox1.isSelected()){            this.jTextField1.setText("3");            this.jTextField2.setText("300");            this.jLabel1.setText("From");            this.jLabel2.setText("To");        }else{            this.jTextField1.setText("");            this.jTextField2.setText("");            this.jLabel1.setText("Origin1");            this.jLabel2.setText("Origin2");        }    }//GEN-LAST:event_jCheckBox1StateChanged    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed        // 張棟僐乕僪傪偙偙偵捛壛偟傑偡:        // Run        jComboBox1.setEditable(false);        this.jComboBox1.removeAllItems();        boolean rand = jCheckBox1.isSelected();        this.p = -1;        this.q = -1;        this.publickey = -1;        this.privatekey = -1;        try{            maximum = Integer.valueOf(jTextField5.getText()).intValue();        }catch(Exception e){            jTextField5.setText("");            jTextArea1.append("Must be a number value. \n");            return;        }        int from,to;        try{            from = Integer.valueOf(jTextField1.getText()).intValue();        }catch(Exception e){            jTextField1.setText("");            jTextArea1.append("Must be a number value. \n");            return;        }        try{            to = Integer.valueOf(jTextField2.getText()).intValue();        }catch(Exception e){            jTextField2.setText("");            jTextArea1.append("Must be a number value. \n");            return;        }        if (from >= to){            jTextField2.setText("");            return;        }        if (to >= limit){            HUtil.HDialog.HYNDialog yndialog = new HUtil.HDialog.HYNDialog(this, true);            yndialog.setTitle("Continue ?");            yndialog.setMsgText("Warning: \n'" + to + "' is so large, the calculation maybe \ntake uncanny long time. ");            yndialog.show();            if (!yndialog.getResult()){                return;            }        }        if (rand){            //random            boolean b = false;            for (int i=0;i<this.maximum;i++){                p = rand(from,to);                if(isPrime(p)){                    break;                }            }            //jTextArea1.append("p = " + p + " \n");             for (int i=0;i<this.maximum;i++){                q = rand(from,to);                if((p!=q)&&(isPrime(q))){                    b = true;                    break;                }            }            //jTextArea1.append("q = " + q + " \n");             if (!b){                jTextArea1.append("Could not find p and q in [ 0 - " + this.maximum + " ]\n");                 return;            }        }else{            //not random            if (this.isPrime(from)){                p = from;            }else{                jTextField1.setText("");                jTextArea1.append("Must be a prime number. \n");                return;            }            if (this.isPrime(to)){                q = to;;            }else{                jTextField2.setText("");                jTextArea1.append("Must be a prime number. \n");                return;            }                    }        modulus = p*q;        //get modulus        this.jTextField3.setText(modulus+"");        //get public key        //ArrayList arrPublicKey = new ArrayList();        int[] pf = getPrimeFactor((p-1)*(q-1));        for (int i=3;i<modulus;i++){            if (!hasCommonPrimeFactor(i, pf)){                //arrPublicKey.add(new Integer(i));                this.jComboBox1.addItem(i+"");             }        }        //if (jComboBox1.countComponents()>0){        //    jComboBox1.setEditable(true);        //}    }//GEN-LAST:event_jButton1ActionPerformed        public boolean isPrivateKey(int p, int q, int publickey, int privatekey){        if ((publickey*privatekey)%((p-1)*(q-1))==1){            return true;        }else{            return false;        }    }        public boolean hasCommonPrimeFactor(int in, int[] primeFactor){        boolean result = false;        for(int i=0;i<primeFactor.length;i++){            if (in%primeFactor[i]==0){                result = true;            }        }        return result;    }            public int[] getPrimeFactor(int in){        int[] temp = new int[in];        int[] result;        int cnt = -1;        for (int i=2;i<in;i++){            if (isPrime(i)||(i==2)){                if (in%i==0){                    cnt ++;                    temp[cnt] = i;                }            }        }        result = new int[cnt+1];        for(int i=0;i<=cnt;i++){            result[i] = temp[i];        }        return result;    }            public boolean isPrime(int in){        boolean result = true;        for (int i=2;i<in;i++){            if (in%i == 0){                result = false;                break;            }        }        return result;    }        public int rand(int from, int to){        int result;        result = from + (int)(Math.random() * (Math.abs(to - from)));        return result;    }        /** Exit the Application */    private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm        System.exit(0);    }//GEN-LAST:event_exitForm        /**     * @param args the command line arguments     */    public static void main(String args[]) {        new HRasKeyGenerator().show();    }            // Variables declaration - do not modify//GEN-BEGIN:variables    private javax.swing.JLabel jLabel4;    private javax.swing.JButton jButton2;    private javax.swing.JScrollPane jScrollPane1;    private javax.swing.JPanel jPanel4;    private javax.swing.JLabel jLabel1;    private javax.swing.JLabel jLabel3;    private javax.swing.JTextField jTextField3;    private javax.swing.JLabel jLabe6;    private javax.swing.JPanel jPanel3;    private javax.swing.JLabel jLabel2;    private javax.swing.JButton jButton1;    private javax.swing.JPanel jPanel2;    private javax.swing.JButton jButton3;    private javax.swing.JPanel jPanel5;    private javax.swing.JTextField jTextField5;    private javax.swing.JTextArea jTextArea1;    private javax.swing.JPanel jPanel7;    private javax.swing.JPanel jPanel1;    private javax.swing.JTextField jTextField2;    private javax.swing.JPanel jPanel6;    private javax.swing.JComboBox jComboBox1;    private javax.swing.JTextField jTextField1;    private javax.swing.JCheckBox jCheckBox1;    private javax.swing.JTextField jTextField4;    private javax.swing.JLabel jLabel5;    // End of variables declaration//GEN-END:variables    }

⌨️ 快捷键说明

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