📄 desjiajiemi.txt
字号:
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 + -