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

📄 desjiajiemi.txt

📁 基于JAVA编程的DES算法加解密工厂的实现
💻 TXT
📖 第 1 页 / 共 4 页
字号:


class CryptFrame_jMenuAbout_mouseAdapter extends MouseAdapter { 
    private CryptFrame adaptee; 
    CryptFrame_jMenuAbout_mouseAdapter(CryptFrame adaptee) { 
        this.adaptee = adaptee; 
    } 

    public void mouseClicked(MouseEvent mouseEvent) { 
        adaptee.jMenuAbout_mouseClicked(mouseEvent); 
    } 
} 
///////////////////////////////////////////////////// 菜单处理类 END //////////////////////////////////////////////// 

package com.crypt.file; 

import java.io.File; 
import java.io.IOException; 
import javax.swing.JOptionPane; 

public class CryptoDESFileThread extends DESFileThread { 

      private File keyFile = null; 
     private File srcFile = null; 
     private File destFile = null; 


    public CryptoDESFileThread(ProcessFrame proFrame,File keyFile,File srcFile,File destFile) { 
    this.proFrame = proFrame; 
     this.keyFile = keyFile; 
    this.srcFile = srcFile; 
    this.destFile = destFile; 

    } 

    public void run(){ 


        if (!keyFile.exists()) { 
         JOptionPane.showMessageDialog(proFrame, "key文件不存在!"); 
         proFrame.setVisible(false); 
         return; 
     } 
     if (!srcFile.exists()) { 
         JOptionPane.showMessageDialog(proFrame, "要加密的源文件不存在!"); 
         proFrame.setVisible(false); 
         return; 
     } 
     if (!destFile.exists()) { 
         try { 
             destFile.createNewFile(); 
         } catch (IOException ex) { 
             JOptionPane.showMessageDialog(proFrame, "要加密后文件不存在,创建失败!"); 
             proFrame.setVisible(false); 
             return; 
         } 
     } 


     KeyDESFileCrypt keyDESFileCrypt = FileCryptFactory.create(FileCryptFactory.KEY_DES); 

     if (!keyDESFileCrypt.cryptoDES(keyFile, srcFile, destFile,this)) { 
         JOptionPane.showMessageDialog(proFrame, "文件加密失败!"); 
         proFrame.setVisible(false); 
     } else { 
         if (this.proFrame.cryptFrame.jCheckBoxDelSrc.isSelected()) { 
             int rs = JOptionPane.showConfirmDialog(proFrame, 
                     "文件加密完成,是否要删除原文件吗?", "提示:", JOptionPane.YES_NO_OPTION); 
             if (rs == JOptionPane.YES_OPTION) { 
                 if (srcFile.exists()) { 
                     srcFile.delete(); 
                 } 
             } 
         } 
         JOptionPane.showMessageDialog(proFrame, "成功加密文件!"); 
     } 
     proFrame.setVisible(false); 
     return; 
    } 

} 
package com.crypt.file; 

import java.awt.Toolkit; 
import javax.swing.SwingUtilities; 
import javax.swing.UIManager; 
import java.awt.Dimension; 

public class CryptTools { 
    boolean packFrame = false; 

    /** 
     * Construct and show the application. 
     */ 
    public CryptTools() { 
        CryptFrame frame = new CryptFrame(); 
        // Validate frames that have preset sizes 
        // Pack frames that have useful preferred size info, e.g. from their layout 
        if (packFrame) { 
            frame.pack(); 
        } else { 
            frame.validate(); 
        } 

        // Center the window 
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
        Dimension frameSize = frame.getSize(); 
        if (frameSize.height > screenSize.height) { 
            frameSize.height = screenSize.height; 
        } 
        if (frameSize.width > screenSize.width) { 
            frameSize.width = screenSize.width; 
        } 
        frame.setLocation((screenSize.width - frameSize.width) / 2, 
                          (screenSize.height - frameSize.height) / 2); 
        frame.setVisible(true); 
    } 

    /** 
     * Application entry point. 
     * 
     * @param args String[] 
     */ 
    public static void main(String[] args) { 
        SwingUtilities.invokeLater(new Runnable() { 
            public void run() { 
                try { 
                    UIManager.setLookAndFeel(UIManager. 
                                             getSystemLookAndFeelClassName()); 
                } catch (Exception exception) { 
                    exception.printStackTrace(); 
                } 

                new CryptTools(); 
            } 
        }); 
    } 
} 
package com.crypt.file; 

import java.io.File; 
import java.io.IOException; 
import javax.swing.JOptionPane; 

public class DeCryptoDESFileThread extends DESFileThread { 

    private File keyFile = null; 
   private File srcFile = null; 
   private File destFile = null; 


    public DeCryptoDESFileThread(ProcessFrame proFrame,File keyFile,File srcFile,File destFile) { 
        this.proFrame = proFrame; 
    this.keyFile = keyFile; 
   this.srcFile = srcFile; 
   this.destFile = destFile; 

    } 

      public void run(){ 
          if (!keyFile.exists()) { 
           JOptionPane.showMessageDialog(proFrame, "key文件不存在!"); 
             proFrame.setVisible(false); 
           return; 
       } 
       if (!srcFile.exists()) { 
           JOptionPane.showMessageDialog(proFrame, "要解密的源文件不存在!"); 
             proFrame.setVisible(false); 
           return; 
       } 
       if (!destFile.exists()) { 
           try { 
               destFile.createNewFile(); 
           } catch (IOException ex) { 
               JOptionPane.showMessageDialog(proFrame, "要解密后文件不存在,创建失败!"); 
                 proFrame.setVisible(false); 
               return; 
           } 
       } 

       KeyDESFileCrypt keyDESFileCrypt = FileCryptFactory.create(FileCryptFactory.KEY_DES); 

       if (!keyDESFileCrypt.deCryptoDES(keyFile, srcFile, destFile,this)) { 
           JOptionPane.showMessageDialog(proFrame, "文件解密失败!"); 
             proFrame.setVisible(false); 
             return; 
       } else { 
           if (this.proFrame.cryptFrame.jCheckBoxDeDelSrc.isSelected()) { 
               int rs = JOptionPane.showConfirmDialog(proFrame, 
                       "文件解密完成,是否要删除原文件吗?", "提示:", JOptionPane.YES_NO_OPTION); 
               if (rs == JOptionPane.YES_OPTION) { 
                   if (srcFile.exists()) { 
                       srcFile.delete(); 
                   } 
               } 
           } 
           JOptionPane.showMessageDialog(proFrame, "成功解密文件!"); 
       } 
       proFrame.setVisible(false); 
       return; 
      } 

} 
package com.crypt.file; 

/** 
 * <p>Title: </p> 
 * 
 * <p>Description: </p> 
 * 
 * <p>Copyright: Copyright (c) 2006</p> 
 * 
 * <p>Company: </p> 
 * 
 * @author not attributable 
 * @version 1.0 
 */ 
public class DESFileThread extends Thread { 

    public  ProcessFrame proFrame = null;   // 父窗口 

    private boolean isEnd = false;   // 取消 

    private boolean isPause = false;  // 暂停 

    private Integer dummy = new Integer(1); 

    public void requestEnd(){ 
        this.isEnd = true; 
    } 
    public void requestBegin(){ 
        this.isEnd = false; 
    } 

    public void requestSuspend(){ 
        this.isPause = true; 

    } 

    public void requestResume(){ 
        this.isPause = false; 
        synchronized(dummy){ 
            dummy.notifyAll(); 
        } 
    } 

    public boolean isEnd(){ 
        return this.isEnd; 
    } 

    public boolean isPause(){ 
        return this.isPause; 
    } 

    public void waitForResume() throws InterruptedException { 
        synchronized(dummy){ 
            while(this.isPause){ 
                dummy.wait(); 
            } 
        } 
    } 

} 
package com.crypt.file; 

import javax.swing.JOptionPane; 
import java.security.Key; 
import java.io.File; 

public class GenerateDESKeyFileThread extends Thread { 
    private CryptFrame frame = null;     // 父窗口 
    private File keyFile = null; 

    public GenerateDESKeyFileThread(CryptFrame frame,File keyFile) { 
        this.frame =  frame; 
        this.keyFile = keyFile; 
    } 


    public void run(){ 
        this.frame.jButtonGenKeyFile.setEnabled(false); 
       // 产生key ,并保存 
       KeyDESFileCrypt keyDESFileCrypt = FileCryptFactory.create(FileCryptFactory.KEY_DES); 
       Key key = keyDESFileCrypt.generateDESKey(); 
       if (key == null) { 
           JOptionPane.showMessageDialog(this.frame, "产生key出错!"); 
          this.frame.jButtonGenKeyFile.setEnabled(true); 
           return; 
       } 



       if (!keyDESFileCrypt.saveDESKeyToFile(keyFile, key)) { 
           JOptionPane.showMessageDialog(this.frame, "保存key文件出错!"); 
           if (keyFile.exists()) { 
               keyFile.delete(); 
           } 
       } else { 
           JOptionPane.showMessageDialog(this.frame, "产生key,并保存成功!"); 
       } 
        this.frame.jButtonGenKeyFile.setEnabled(true); 
    } 
} 
package com.crypt.file; 

import java.awt.*; 

import javax.swing.*; 
import com.borland.jbcl.layout.XYLayout; 
import com.borland.jbcl.layout.*; 
import javax.swing.border.Border; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.awt.event.MouseEvent; 
import java.awt.event.MouseAdapter; 

public class ProcessFrame extends JFrame { 
    CryptFrame cryptFrame = null;        // 主窗体 
    DESFileThread desFileThread = null;  // 处理线程 

    XYLayout xYLayout1 = new XYLayout(); 
    JPanel jPanelLine = new JPanel(); 
    XYLayout xYLayout2 = new XYLayout(); 
    Border border = BorderFactory.createLineBorder(Color.GRAY); 
    JLabel jLabel1 = new JLabel(); 
    JLabel jLabel2 = new JLabel(); 
    JLabel jLabel3 = new JLabel(); 
    JLabel jLabel4 = new JLabel(); 
    JLabel jLabel5 = new JLabel(); 
    JLabel jLabel6 = new JLabel(); 
    JProgressBar jProgressBar1 = new JProgressBar(); 
    JLabel jLabel7 = new JLabel(); 
    JButton jButton1 = new JButton(); 
    JButton jButton2 = new JButton(); 

    public ProcessFrame(CryptFrame cryptFrame) { 
        this.cryptFrame = cryptFrame; 
        try { 
            jbInit(); 
        } catch (Exception exception) { 
            exception.printStackTrace(); 
        } 
    } 

    private void jbInit() throws Exception { 
        getContentPane().setLayout(xYLayout1); 
        this.setResizable(false); 
        this.setTitle("正在加密/加密文件"); 
        this.setVisible(true); 
        jPanelLine.setBorder(border); 
        jPanelLine.setLayout(xYLayout2); 
       &n 

⌨️ 快捷键说明

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