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

📄 hldecrsaface.java

📁 RSA加长分段解密算法
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                        //密文段起始字符的位置(在EncText中)                                                int SegmentStartPos=staticRSA_Dec.preDecRsa();                        preSegmentStartPos=SegmentStartPos;                        setProgressBar();                        progresserPos+=SegmentStartPos-preSegmentStartPos;                        jMenuItem5.setEnabled(false);                        jMenuItem5.setText("正在解密1");//changed                        setTitle("HL-RSA解密器 - 正在解密“"+fileName+"”文件");                        while(SegmentStartPos<staticRSA_Dec.getSectText().length()&&stop==false){                            preSegmentStartPos=SegmentStartPos;                            SegmentStartPos=staticRSA_Dec.DecRsa(SegmentStartPos);//调用解密方法                            progresserPos+=SegmentStartPos-preSegmentStartPos;                        }                        staticRSA_Dec.froDecRsa();//善后处理                    }                   progresserPos=progresserLength;                   setProgressBar();                    if(stop==false){                        JOptionPane.showMessageDialog(HLDecRSAFace.this,                                "密文已成功解密!",                                "恭喜",                                JOptionPane.INFORMATION_MESSAGE);                        jTextArea3.setText(staticRSA_Dec.getDecText());//输出解密后的明文;                    } else{                        JOptionPane.showMessageDialog(HLDecRSAFace.this,                                "解密密文已取消!",                                "提示!",                                JOptionPane.INFORMATION_MESSAGE);                        progresser.setValue(0);                        jButton3.setText("解密密文");                        jLabel1.setText("已解密:"+(String.valueOf(0))+" %");                    }                    stop=false;                    jMenuItem5.setEnabled(true);                    jMenuItem5.setText("解密密文");                    setTitle("HL-RSA解密器");                } catch(Exception e){}            } else {                JOptionPane.showMessageDialog(HLDecRSAFace.this,                        "你还没有读取密文!",                        "Error",                        JOptionPane.ERROR_MESSAGE);            }        } catch(Exception e){};        jButton3.setText("解密密文");    }    private void srcFileLoader()throws Exception{//浏览文件,打开明文        JFileChooser fileChooser=new JFileChooser(".");        fileChooser.addChoosableFileFilter(new FileFilterImpl(new String[]{"dat"},"Security Files(*.dat)"));        int r=fileChooser.showOpenDialog(HLDecRSAFace.this);        File file=fileChooser.getSelectedFile();        if (file.isFile() && file.canRead()) {            if(readEncFile=true){                fileName=file.getName();                readEncFile=true;            }            rsaKeyAndEncFilePath=file.getPath();        } else{JOptionPane.showMessageDialog(HLDecRSAFace.this,                "打开文件失败: " + file,                "Error",                JOptionPane.ERROR_MESSAGE);        }    }    private void save(){//保存明文操作        JFileChooser chooser;        chooser=new JFileChooser(".");        int r=chooser.showSaveDialog(HLDecRSAFace.this);        if(r==JFileChooser.APPROVE_OPTION){            File file=chooser.getSelectedFile();            if(file.getName().indexOf(".")!=-1)                ;            else file=new File(file.getPath()+".txt");            String content=jTextArea3.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();            }        }    }        public static void main(String args[]) {        java.awt.EventQueue.invokeLater(new Runnable() {            public void run() {                new HLDecRSAFace(new HLDecRSA()).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.JButton jButton4;    private javax.swing.JLabel jLabel1;    private javax.swing.JMenu jMenu1;    private javax.swing.JMenu jMenu2;    private javax.swing.JMenu jMenu3;    private javax.swing.JMenu jMenu4;    private javax.swing.JMenu jMenu5;    private javax.swing.JMenu jMenu6;    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.JMenuItem jMenuItem7;    private javax.swing.JMenuItem jMenuItem8;    private javax.swing.JPanel jPanel1;    private javax.swing.JPanel jPanel2;    private javax.swing.JPanel jPanel3;    private javax.swing.JPanel jPanel4;    private javax.swing.JPanel jPanel5;    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.JTextArea jTextArea1;    private javax.swing.JTextArea jTextArea2;    private javax.swing.JTextArea jTextArea3;    // 变量声明结束//GEN-END:variables    private DataDialog dialog = null;    private JProgressBar progresser;    private Boolean readEnc,readKey,readEncFile;    private Boolean lookJava,stop;    private byte[] mt;    private HLDecRSA staticRSA_Dec;    private int progresserPos,progresserLength;    private int midSegmentStartPos;    private int keyLength;    private String fileName;    private String rsaKeyAndEncFilePath;    private String str1 = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";    private String str2 = "javax.swing.plaf.metal.MetalLookAndFeel";}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;    }}//打开文件类型过虑类class FileFilterImpl extends javax.swing.filechooser.FileFilter{    String[] exts;    String description;    public FileFilterImpl(String[] extensions,String description){        exts=new String[extensions.length];        for(int i=0;i<exts.length;i++)            exts[i]=extensions[i];        this.description=description;    }    public boolean accept(File f){        String fileName=f.getName();        for(int i=0;i<exts.length;i++){            if(fileName.endsWith(exts[i]))                return true;        }        return false;    }    public String getDescription(){        return description;    }}class ConnectInfo {    public int keyLength;    public ConnectInfo(int keyLen) {        keyLength=keyLen; }}//产生密钥对话框类class DataDialog extends JDialog implements ActionListener {    private JTextField username, password;    private JButton okButton, cancelButton;    private boolean ok,yes;    private javax.swing.JButton jButton1;    private javax.swing.JButton jButton2;    private javax.swing.JComboBox jComboBox1;    private javax.swing.JLabel jLabel2;    private Boolean lookJava;    private String str1 = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";    private String str2 = "javax.swing.plaf.metal.MetalLookAndFeel";    public DataDialog(JFrame parent,Boolean lookJava) {        super(parent, "产生密钥", true);        JPanel contenPane=(JPanel)getContentPane();        contenPane.setLayout(null);        jLabel2=new JLabel("密钥长度:");        jComboBox1 = new javax.swing.JComboBox();        jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "512", "640", "768", "1024", "1380", "1636", "1892", "2048" }));        jButton1 = new javax.swing.JButton("确定");        jButton2 = new javax.swing.JButton("取消");        jButton1.addActionListener(this);        jButton2.addActionListener(this);        jLabel2.setBounds(new Rectangle(30, 20, 90, 30));        jLabel2.setFont(new java.awt.Font("宋体", 0, 14));        jComboBox1.setBounds(new Rectangle(120, 20, 70, 25));        jButton1.setBounds(new Rectangle(30, 80, 60, 30));        jButton2.setBounds(new Rectangle(130, 80, 60, 30));        contenPane.add(jLabel2);        contenPane.add(jComboBox1);        contenPane.add(jButton1);        contenPane.add(jButton2);        setSize(220, 160);        setResizable(false);        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();        setBounds((screenSize.width-230)/2, (screenSize.height-190)/2, 230, 190);        if(lookJava==true){            try{                UIManager.setLookAndFeel(str2);                SwingUtilities.updateComponentTreeUI(this);            } catch(Exception e ){}        }    }    public Boolean getyes(){        return yes;    }        public void actionPerformed(ActionEvent evt) {        Object source = evt.getSource();        if(source == jButton1) {            ok = true;            yes=true;            setVisible(false);        } else if (source == jButton2)            setVisible(false);    }        public boolean showDialog(ConnectInfo transfer,Boolean lookJava) {        this.lookJava=lookJava;        ok = false;        yes=false;        if(lookJava==false){            try{                UIManager.setLookAndFeel(str1);                SwingUtilities.updateComponentTreeUI(this);            } catch(Exception e ){}        }        show();        if (ok) {            transfer.keyLength = Integer.parseInt(jComboBox1.getSelectedItem().toString());        }        return ok;    }}

⌨️ 快捷键说明

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