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

📄 desjiajiemi.txt

📁 基于JAVA编程的DES算法加解密工厂的实现
💻 TXT
📖 第 1 页 / 共 4 页
字号:
            return false; 
        }finally{ 
            try { 
                 fin.close(); 
                fout.close(); 
            } catch (IOException ex2) { 
                ex2.printStackTrace(); 
                return false; 
            } 
        } 

        if(!isFinsh && thread.isEnd()){ 
            // 没有完成,但是被取消了,则要清除一些工作 
            //thread.proFrame 
              JOptionPane.showMessageDialog(thread.proFrame, "你取消了操作!"); 
            if(destFile.exists()){ 
                destFile.delete(); 
            } 
            return false; 
        } 
        return true; 
    } 

    /** 
     * 转换数据编码 
     * @param key Key 
     * @param data byte[] 
     * @param mode int 
     * @return byte[] 
     */ 
    private  byte[] translateDES(Key key, byte[] data, int mode) { 
        Cipher cp = null; 
        try { 
            cp = Cipher.getInstance("DES"); 

            cp.init(mode, key); 

            return cp.doFinal(data); 

        } catch (InvalidKeyException ex) { 
            ex.printStackTrace(); 
            return null; 
        } catch (NoSuchPaddingException ex1) { 
            ex1.printStackTrace(); 
            return null; 
        } catch (NoSuchAlgorithmException ex1) { 
            ex1.printStackTrace(); 
            return null; 
        } catch (BadPaddingException ex2) { 
            ex2.printStackTrace(); 
            return null; 
        } catch (IllegalBlockSizeException ex2) { 
            ex2.printStackTrace(); 
            return null; 
        } catch (IllegalStateException ex2) { 
            ex2.printStackTrace(); 
            return null; 
        } 
    } 

} 

package com.crypt.file; 

import java.awt.*; 
import java.awt.event.*; 

import javax.swing.*; 
import com.borland.jbcl.layout.XYLayout; 
import com.borland.jbcl.layout.*; 
import java.io.File; 
import java.security.Key; 
import java.io.*; 

public class CryptFrame extends JFrame { 

    JPanel contentPane; 
    JMenuBar jMenuBar1 = new JMenuBar(); 
    JMenu jMenuFile = new JMenu(); 
    JMenuItem jMenuFileExit = new JMenuItem(); // 退出 
    JMenuItem jMenuFileGenKeyFile = new JMenuItem(); // 产生key文件 
    JMenuItem jMenuFileCryptFile = new JMenuItem(); // 文件加密 
    JMenuItem jMenuFileDeCryptfile = new JMenuItem(); // 文件解密 
    JLabel statusBar = new JLabel(); 
    XYLayout xYLayout1 = new XYLayout(); 

    // 产生key 文件组件 
    JTextField jTextFieldKeyLoc = new JTextField(); 
    JButton jButtonSelect = new JButton(); 
    JButton jButtonGenKeyFile = new JButton(); 
    JLabel jLabelKeyLoc = new JLabel(); 

    // 文件加密组件 
    JLabel jLabelCryKey = new JLabel(); 
    JLabel jLabelCrySrc = new JLabel(); 
    JLabel jLabelCryDest = new JLabel(); 
    JTextField jTextFieldCryKey = new JTextField(); 
    JTextField jTextFieldCrySrc = new JTextField(); 
    JTextField jTextFieldCryDest = new JTextField(); 
    JButton jButtonCryKey = new JButton(); 
    JButton jButtonCrySrc = new JButton(); 
    JButton jButtonCryDest = new JButton(); 
    JButton jButtonCryFile = new JButton(); 
    JCheckBox jCheckBoxDelSrc = new JCheckBox(); 

    // 文件解密组件 
    JLabel jLabelDeCryKey = new JLabel(); 
    JLabel jLabelDeCrySrc = new JLabel(); 
    JLabel jLabelDeCryDest = new JLabel(); 
    JTextField jTextFieldDeCryKey = new JTextField(); 
    JTextField jTextFieldDeCrySrc = new JTextField(); 
    JTextField jTextFieldDeCryDest = new JTextField(); 
    JButton jButtonDeCryKey = new JButton(); 
    JButton jButtonDeCrySrc = new JButton(); 
    JButton jButtonDeCryDest = new JButton(); 
    JButton jButtonDeCryFile = new JButton(); 
    JCheckBox jCheckBoxDeDelSrc = new JCheckBox(); 

    // 关于对话框 
    JMenu jMenuAbout = new JMenu(); 

    public CryptFrame() { 
        try { 
            setDefaultCloseOperation(EXIT_ON_CLOSE); 
            jbInit(); 
        } catch (Exception exception) { 
            exception.printStackTrace(); 
        } 
    } 


    private void jbInit()  { 
        contentPane = (JPanel) getContentPane(); 

        contentPane.setLayout(xYLayout1); 
        setSize(new Dimension(400, 350)); 
        setTitle("加解密小工具"); 
        statusBar.setText(" "); 
        jMenuFile.setText("操作"); 

        jMenuFileGenKeyFile.setText("产生key文件"); 
        jMenuFileGenKeyFile.addActionListener(new 
                                              CryptFrame_jMenuFileGenKeyFile_ActionAdapter(this)); 

        jMenuFileCryptFile.setText("加密文件"); 
        jMenuFileCryptFile.addActionListener(new 
                                             CryptFrame_jMenuFileCryptFile_ActionAdapter(this)); 

        jMenuFileDeCryptfile.setText("解密文件"); 
        jMenuFileDeCryptfile.addActionListener(new 
                                             CryptFrame_jMenuFileDeCryptfile_ActionAdapter(this)); 

        jMenuFileExit.setText("退出"); 
        jMenuFileExit.addActionListener(new 
                                        CryptFrame_jMenuFileExit_ActionAdapter(this)); 
        jButtonGenKeyFile.addMouseListener(new 
                                           CryptFrame_jButtonGenKeyFile_mouseAdapter(this)); 
        jMenuAbout.setText("关于"); 
        jMenuAbout.addMouseListener(new CryptFrame_jMenuAbout_mouseAdapter(this)); 



        jButtonSelect.addMouseListener(new 
                                       CryptFrame_jButtonSelect_mouseAdapter(this)); 

        jButtonCryKey.addMouseListener(new 
                                       CryptFrame_jButtonCryKey_mouseAdapter(this)); 
        jButtonCrySrc.addMouseListener(new 
                                       CryptFrame_jButtonCrySrc_mouseAdapter(this)); 

        jButtonCryDest.addMouseListener(new 
                                        CryptFrame_jButtonCryDest_mouseAdapter(this)); 
        jButtonCryFile.addMouseListener(new 
                                        CryptFrame_jButtonCryFile_mouseAdapter(this)); 


        jButtonDeCryKey.addMouseListener(new 
                                         CryptFrame_jButtonDeCryKey_mouseAdapter(this)); 

        jButtonDeCrySrc.addMouseListener(new 
                                         CryptFrame_jButtonDeCrySrc_mouseAdapter(this)); 

        jButtonDeCryDest.addMouseListener(new 
                                          CryptFrame_jButtonDeCryDest_mouseAdapter(this)); 

        jButtonDeCryFile.addMouseListener(new 
                                          CryptFrame_jButtonDeCryFile_mouseAdapter(this)); 

        jMenuBar1.add(jMenuFile); 
        jMenuBar1.add(jMenuAbout); 
        jMenuFile.add(jMenuFileGenKeyFile); 
        jMenuFile.add(jMenuFileCryptFile); 
        jMenuFile.add(jMenuFileDeCryptfile); 
        jMenuFile.add(jMenuFileExit); 

        setJMenuBar(jMenuBar1); 
        this.setResizable(false); 
        this.setVisible(true); 

    } 

    // 退出菜单处理处理 
    void jMenuFileExit_actionPerformed(ActionEvent actionEvent) { 

        int rs = JOptionPane.showConfirmDialog(this, 
                    "真的要退出吗?", "提示:", JOptionPane.YES_NO_OPTION); 
            if (rs == JOptionPane.YES_OPTION) { 
                  System.exit(0); 
            } 

    } 

    // 产生key文件菜单处理 
    void jMenuFileGenKeyFile_actionPerformed(ActionEvent actionEvent) { 

        contentPane.removeAll(); 
        contentPane.add(statusBar, new XYConstraints(0, 285, 400, -1)); 
        contentPane.add(jLabelKeyLoc, new XYConstraints(22, 36, -1, -1)); 
        contentPane.add(jTextFieldKeyLoc, new XYConstraints(21, 68, 282, -1)); 
        contentPane.add(jButtonSelect, new XYConstraints(312, 68, -1, -1)); 
        contentPane.add(jButtonGenKeyFile, new XYConstraints(164, 159, -1, -1)); 

        jButtonSelect.setText("选择..."); 

        jButtonGenKeyFile.setText("产生key文件"); 
        jLabelKeyLoc.setText("选择Key文件保存位置:"); 
        contentPane.setVisible(true); 
        contentPane.updateUI(); 
    } 

    // 加密文件,菜单处理 
    void jMenuFileCryptFile_actionPerformed(ActionEvent actionEvent) { 

        contentPane.removeAll(); 
        contentPane.add(jButtonCryKey, new XYConstraints(312, 30, -1, -1)); 
        contentPane.add(jButtonCrySrc, new XYConstraints(312, 82, -1, -1)); 
        contentPane.add(jButtonCryDest, new XYConstraints(310, 139, -1, -1)); 
        contentPane.add(jLabelCryKey, new XYConstraints(11, 36, -1, -1)); 
        contentPane.add(jLabelCrySrc, new XYConstraints(9, 83, -1, -1)); 
        contentPane.add(jLabelCryDest, new XYConstraints(7, 137, -1, -1)); 
        contentPane.add(jTextFieldCryKey, new XYConstraints(87, 32, 225, -1)); 
        contentPane.add(jTextFieldCrySrc, new XYConstraints(86, 82, 224, -1)); 
        contentPane.add(jTextFieldCryDest, new XYConstraints(88, 138, 222, -1)); 
        contentPane.add(jButtonCryFile, new XYConstraints(159, 225, -1, -1)); 
        contentPane.add(jCheckBoxDelSrc, new XYConstraints(86, 192, -1, -1)); 

        jButtonCryKey.setText("选择..."); 

        jButtonCrySrc.setText("选择..."); 

        jButtonCryDest.setText("选择..."); 


        jLabelCryKey.setText("key文件:"); 
        jLabelCrySrc.setText("要加密文件:"); 
        jLabelCryDest.setText("加密后文件:"); 

        jButtonCryFile.setText("加密文件"); 

        jCheckBoxDelSrc.setText("加密后删除原文件"); 
        contentPane.setVisible(true); 
         contentPane.updateUI(); 
    } 

    // 解密文件,菜单处理 
    void jMenuFileDeCryptfile_actionPerformed(ActionEvent actionEvent) { 

        contentPane.removeAll(); 
        contentPane.add(jButtonDeCryKey, new XYConstraints(312, 30, -1, -1)); 
        contentPane.add(jButtonDeCrySrc, new XYConstraints(312, 82, -1, -1)); 
        contentPane.add(jButtonDeCryDest, new XYConstraints(310, 139, -1, -1)); 
        contentPane.add(jLabelDeCryKey, new XYConstraints(11, 36, -1, -1)); 
        contentPane.add(jLabelDeCrySrc, new XYConstraints(9, 83, -1, -1)); 
        contentPane.add(jLabelDeCryDest, new XYConstraints(7, 137, -1, -1)); 
        contentPane.add(jTextFieldDeCryKey, new XYConstraints(87, 32, 225, -1)); 
        contentPane.add(jTextFieldDeCrySrc, new XYConstraints(86, 82, 224, -1)); 
        contentPane.add(jTextFieldDeCryDest, new XYConstraints(88, 138, 222, -1)); 
        contentPane.add(jButtonDeCryFile, new XYConstraints(159, 225, -1, -1)); 
        contentPane.add(jCheckBoxDeDelSrc, new XYConstraints(86, 192, -1, -1)); 

        jButtonDeCryKey.setText("选择..."); 

        jButtonDeCrySrc.setText("选择..."); 

        jButtonDeCryDest.setText("选择..."); 


        jLabelDeCryKey.setText("key文件:"); 
        jLabelDeCrySrc.setText("要解密文件:"); 
        jLabelDeCryDest.setText("解密后文件:"); 

        jButtonDeCryFile.setText("解密文件"); 

        jCheckBoxDeDelSrc.setText("解密后删除原文件"); 
        contentPane.setVisible(true); 
         contentPane.updateUI(); 
    } 


    // 产生key文件,选择key文件位置处理 
    public void jButtonSelect_mouseClicked(MouseEvent mouseEvent) { 
        JFrame fileChooseFrame = new JFrame("选择key文件存储位置"); 

        JFileChooser jFileChooserKeyFile = new JFileChooser(); 
        jFileChooserKeyFile.setDialogTitle("选择key文件存储位置"); 
        int result = jFileChooserKeyFile.showOpenDialog(fileChooseFrame); 
        File selectedFile = jFileChooserKeyFile.getSelectedFile(); 
        if (selectedFile != null) { 
            this.jTextFieldKeyLoc.setText(selectedFile.getPath()); 
        } 
    } 

    // 产生key文件,产生处理 
    public void jButtonGenKeyFile_mouseClicked(MouseEvent mouseEvent) { 
        String fileLocStr = this.jTextFieldKeyLoc.getText(); 
        if (fileLocStr == null || "".equals(fileLocStr)) { 
            JOptionPane.showMessageDialog(this, "请选择key文件存储位置!"); 
            return; 
        } 
        File keyFile = new File(fileLocStr); 

         // 启动产生key文件线程 
         GenerateDESKeyFileThread thread = new GenerateDESKeyFileThread(this,keyFile); 
         thread.start(); 

    } 

    // 文件加密,选择 key 文件 
    public void jButtonCryKey_mouseClicked(MouseEvent mouseEvent) { 
        JFrame fileChooseFrame = new JFrame("选择key文件"); 
        JFileChooser jFileChooserKeyFile = new JFileChooser(); 
        jFileChooserKeyFile.setDialogTitle("选择key文件"); 
        int result = jFileChooserKeyFile.showOpenDialog(fileChooseFrame); 
        File selectedFile = jFileChooserKeyFile.getSelectedFile(); 
        if (selectedFile != null) { 
            this.jTextFieldCryKey.setText(selectedFile.getPath()); 
        } 
    } 

    // 文件加密,选择 源文件 
    public void jButtonCrySrc_mouseClicked(MouseEvent mouseEvent) { 
        JFrame fileChooseFrame = new JFrame("选择需要加密的文件"); 

        JFileChooser jFileChooserKeyFile = new JFileChooser(); 
        jFileChooserKeyFile.setDialogTitle("选择需要加密的文件"); 
        int result = jFileChooserKeyFile.showOpenDialog(fileChooseFrame); 
        File selectedFile = jFileChooserKeyFile.getSelectedFile(); 
        if (selectedFile != null) { 
            this.jTextFieldCrySrc.setText(selectedFile.getPath()); 
            this.jTextFieldCryDest.setText(selectedFile.getPath()+".data"); 
        } 
    } 

    //  文件加密, 选择目标文件 

⌨️ 快捷键说明

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