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

📄 hlencrsaface.java

📁 RSA加密算法
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                jMenuItem4ActionPerformed(evt);            }        });        jMenu3.add(jMenuItem4);        jMenuBar1.add(jMenu3);        setJMenuBar(jMenuBar1);        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();        setBounds((screenSize.width-666)/2, (screenSize.height-563)/2, 666, 563);    }//GEN-END:initComponents        private void jMenuItem6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem6ActionPerformed        stop=true;//停止加密        jMenuItem6.setEnabled(false);    }//GEN-LAST:event_jMenuItem6ActionPerformed        private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed        readFile=true;        try{            srcFileLoader();//打开明文文件        } catch(Exception e){}    }//GEN-LAST:event_jButton2ActionPerformed        private void jRadioButtonMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jRadioButtonMenuItem2ActionPerformed        try{            UIManager.setLookAndFeel(str1);            SwingUtilities.updateComponentTreeUI(this);        } catch(Exception e ){}    }//GEN-LAST:event_jRadioButtonMenuItem2ActionPerformed        private void jRadioButtonMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jRadioButtonMenuItem1ActionPerformed        try{            UIManager.setLookAndFeel(str2);            SwingUtilities.updateComponentTreeUI(this);        } catch(Exception e ){}    }//GEN-LAST:event_jRadioButtonMenuItem1ActionPerformed        private void jMenuItem5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem5ActionPerformed        save();// 保存明文    }//GEN-LAST:event_jMenuItem5ActionPerformed        private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem4ActionPerformed        JOptionPane.showMessageDialog(HLEncRSAFace.this,"     HL-RAS加密软件\n版本 1.0  (运行环境:JDK1.5以上的版本)\n\n" +                "开发成员:何泽荣、林喜鹏\n热诚欢迎您能对此软件提出宝贵意见!!!\n华南农业大学02级计算机1班\n(Email:zelosor@163.com)",                "关于",JOptionPane.INFORMATION_MESSAGE,new ImageIcon(""));    }//GEN-LAST:event_jMenuItem4ActionPerformed        private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem3ActionPerformed        if(EncKey==true){//如果已产生密钥,则读取明文并加密            EncFileTh=new EncFileThread();            EncFileTh.start();//调用加密明文线程            jButton3.setText("停止加密");        } else{ JOptionPane.showMessageDialog(HLEncRSAFace.this,                "你还没有读取公钥,请先读取公钥!",                "Error",                JOptionPane.ERROR_MESSAGE);        }    }//GEN-LAST:event_jMenuItem3ActionPerformed        private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem2ActionPerformed        System.exit(0);            }//GEN-LAST:event_jMenuItem2ActionPerformed        private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem1ActionPerformed        try{            srcFileLoader();//打开明文文件        } catch(Exception e){}    }//GEN-LAST:event_jMenuItem1ActionPerformed        private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed        if(jButton3.getText()=="加密明文"){            if(EncKey==true){//如果已产生密钥,则读取明文并加密                jMenuItem6.setEnabled(true);                jTextArea3.setText("");                EncFileThread EncFileTh=new EncFileThread();                EncFileTh.start();//调用加密明文线程                jButton3.setText("停止加密");            } else{ JOptionPane.showMessageDialog(HLEncRSAFace.this,                    "你还没有读取公钥,请先读取公钥!",                    "Error",                    JOptionPane.ERROR_MESSAGE);            }        } else {            stop=true;            jMenuItem6.setEnabled(false);        }    }//GEN-LAST:event_jButton3ActionPerformed        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed        readKey=true;        try{            srcFileLoader();//打开公钥文件        } catch(Exception e){}            }//GEN-LAST:event_jButton1ActionPerformed    private void displayEncFile(){//输出密文方法        HLEncRSAFace.this.setTitle("HL-RSA加密器 - 正在输出密文...");        String stri="密文如下:"+"\n";        jTextArea3.setText(stri+this.EncString);//输出加密后的密文        HLEncRSAFace.this.setTitle("HL-RSA加密器");    }    private void setProgressBar(int progresserLength){//出来进度条        float pos=(float)progresserPos/progresserLength*100;        jLabel4.setText("已加密:"+(String.valueOf((int)pos))+" %");        progresser.setValue(progresserPos);    }        private void encFile(){//对明文进行加密方法        if(-1!=jTextArea2.getText().length()){//明文非空            HLEncRSAFace.this.setTitle("HL-RSA加密器 - 正在加密“"+fileName+"”文件");            //获取明文            String stringText=jTextArea2.getText();            staticEncRSA.setMessage(stringText);            jMenuItem3.setEnabled(false);            jMenuItem3.setText("正在加密");            String stri="密文如下:"+"\n";            jTextArea3.setText(stri);//输出加密后的密文            progresserPos=0;            try{int progresserLength=stringText.getBytes("UTF-8").length;            	progresser.setMaximum(progresserLength);            	while(staticEncRSA.nextSectUnencText(1024)&&stop==false){                	//当前明文段的字节数组长度                	this.ByteTextlength=staticEncRSA.getByteTextLength();                	//复位STextEndPos                	int STextEndPos=0;                	progresserPos+=this.ByteTextlength;                	setProgressBar(progresserLength);                	while(STextEndPos<this.ByteTextlength&&stop==false){                    	STextEndPos=staticEncRSA.EncRsa(STextEndPos);//调用加密类的加密方法                    	this.STextEndPos=STextEndPos;                	}                	staticEncRSA.froEncRsa();            	}            	if(stop==false){                	staticEncRSA.writeEncStringToFile();                	JOptionPane.showMessageDialog(HLEncRSAFace.this,                        "明文已成功加密!",                        "恭喜,加密成功!",                        JOptionPane.INFORMATION_MESSAGE);                	this.EncString=staticEncRSA.getEncString();                	DisplayEncFileThread DisplayFile=new DisplayEncFileThread();                	DisplayFile.start();//调用另一线程输出密文            	} else {JOptionPane.showMessageDialog(HLEncRSAFace.this,                    "加密明文已取消!",                    "提示!",                    JOptionPane.INFORMATION_MESSAGE);            		progresser.setValue(0);            		jButton3.setText("加密明文");            		jLabel4.setText("已加密:"+(String.valueOf(0))+" %");            		}		            	jMenuItem3.setEnabled(true);            	jMenuItem3.setText("加密明文");            } catch(Exception e){ }        } else {JOptionPane.showMessageDialog(HLEncRSAFace.this,                "明文为空,请输入或打开明文!",                "Error",                JOptionPane.ERROR_MESSAGE);          }       	stop=false;        jButton3.setText("加密明文");    }    private void srcFileLoader()throws Exception{//浏览文件,打开文件        JFileChooser fileChooser=new JFileChooser(".");        int r=fileChooser.showOpenDialog(HLEncRSAFace.this);        File file=fileChooser.getSelectedFile();        if (file.isFile() && file.canRead()) {            if(readFile==true){                fileName=file.getName();                readFile=false;                if(r==JFileChooser.APPROVE_OPTION) {                    try{                        BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(file)));                        String s="";                        jTextArea2.setText(s);                        while((s=br.readLine())!=null) {                            jTextArea2.append(s+"\n");                        }                        br.close();                    } catch(IOException except){                        except.printStackTrace();                    }                }            }            if(readKey==true){                keyName=file.getPath();                staticEncRSA.readPublicKey(keyName);                jTextField1.setText(staticEncRSA.getMid_E());//输出公开密钥e                jTextArea1.setText(staticEncRSA.getMid_N());//输出公开密钥n                EncKey=true;                readKey=false;            }        } else{JOptionPane.showMessageDialog(HLEncRSAFace.this,                "打开文件失败: " + file,                "Error",                JOptionPane.ERROR_MESSAGE);        }    }    public void save(){	//保存明文操作        JFileChooser chooser;        chooser=new JFileChooser(".");        int r=chooser.showSaveDialog(HLEncRSAFace.this);        if(r==JFileChooser.APPROVE_OPTION){            File file=chooser.getSelectedFile();            if(file.getName().indexOf(".")!=-1)                ;            else file=new File(file.getPath()+".txt");            String content=jTextArea2.getText();            content=StringEdit.StringReplace(content,"\n","\r\n");            try{                BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)));                bw.write(content);                bw.close();            } catch(IOException ioe) {                ioe.printStackTrace();            }        }    }    /**     * @param args the command line arguments     */    public static void main(String args[]){        java.awt.EventQueue.invokeLater(new Runnable() {            public void run() {                new HLEncRSAFace(new HLEncRSA()).setVisible(true);            }        });    }        // 变量声明 - 不进行修改//GEN-BEGIN:variables    private javax.swing.ButtonGroup buttonGroup1;    private javax.swing.JButton jButton1;    private javax.swing.JButton jButton2;    private javax.swing.JButton jButton3;    private javax.swing.JLabel jLabel1;    private javax.swing.JLabel jLabel3;    private javax.swing.JLabel jLabel4;    private javax.swing.JMenu jMenu1;    private javax.swing.JMenu jMenu2;    private javax.swing.JMenu jMenu3;    private javax.swing.JMenu jMenu4;    private javax.swing.JMenuBar jMenuBar1;    private javax.swing.JMenuItem jMenuItem1;    private javax.swing.JMenuItem jMenuItem2;    private javax.swing.JMenuItem jMenuItem3;    private javax.swing.JMenuItem jMenuItem4;    private javax.swing.JMenuItem jMenuItem5;    private javax.swing.JMenuItem jMenuItem6;    private javax.swing.JPanel jPanel1;    private javax.swing.JPanel jPanel2;    private javax.swing.JPanel jPanel3;    private javax.swing.JPanel jPanel4;    private javax.swing.JRadioButtonMenuItem jRadioButtonMenuItem1;    private javax.swing.JRadioButtonMenuItem jRadioButtonMenuItem2;    private javax.swing.JScrollPane jScrollPane1;    private javax.swing.JScrollPane jScrollPane2;    private javax.swing.JScrollPane jScrollPane3;    private javax.swing.JSplitPane jSplitPane1;    private javax.swing.JTextArea jTextArea1;    private javax.swing.JTextArea jTextArea2;    private javax.swing.JTextArea jTextArea3;    private javax.swing.JTextField jTextField1;    // 变量声明结束//GEN-END:variables    private File srcfile;    private JProgressBar progresser;    private Boolean EncKey,readKey,readFile,stop,pause;    private int STextEndPos,ByteTextlength,progresserPos;    private String fileName,keyName;    private String EncString;    private String str1 = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";    private String str2 = "javax.swing.plaf.metal.MetalLookAndFeel";    private EncFileThread EncFileTh;}class StringEdit//保存明文文件辅助类{    public static String StringReplace(String Source,String indexStr,String replaceWord) {        int scanPoint=0;        String backUp=Source;        while(scanPoint!=-1&&scanPoint<backUp.length()) {            scanPoint=backUp.indexOf(indexStr,scanPoint);            if(scanPoint!=-1) {                String frontStr=backUp.substring(0,scanPoint);                String backStr=backUp.substring(scanPoint+indexStr.length(),backUp.length());                backUp=frontStr+replaceWord+backStr;                scanPoint++;                scanPoint+=(replaceWord.length()-indexStr.length());            }        }        return backUp;    }    }

⌨️ 快捷键说明

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