前言
这是一款自设计的文件加密工具,没有用到多线程和高级流,性能上还是和市面上的软件有很大差异。
基本原理:
Java利用字节型文件流进行文件的复制粘贴,文件加密与解密
Java使用字节型文件流完成文件夹的复制(递归)
并且增加了输入密码对文件进行加密的功能,如果密码输入不正确,解密后的文件是无法查看的。
加密时对所有字节做了处理,因此它适用于普通文本文件的加密。
使用到了递归,因此它也适用于文件夹的加密。
样例代码
funBtn.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if(sourceField.getText()==null || sourceField.getText().trim().equals("") || objField.getText()==null || objField.getText().trim().equals("")) {
JOptionPane.showMessageDialog(CoreFrame.this, "您还没有选择文件呢,请选择您的文件");
return;
}
String sourcePath = sourceField.getText();
String objPath = objField.getText();
boolean isEncryp = false;
if (option.equals("加密")){
isEncryp = true;
}else if(option.equals("解密")){
isEncryp = false;
}else{
JOptionPane.showMessageDialog(CoreFrame.this,"程序错误,请重启");
}
try {
FileSuperOption fileSuperOption = new FileSuperOption();//new一个对象,保证每次的isFirstCopy刚开始都是true!!
if (passwordField.getText()==null || passwordField.getText().equals("")) {
//不使用密码加密/解密
fileSuperOption.superCopy(sourcePath, objPath, isEncryp);
}
else {
//使用密码加密/解密
fileSuperOption.superCopy(sourcePath, objPath, isEncryp, passwordField.getText());
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(CoreFrame.this,"路径有误,建议不要手工输入!");
}
//JOptionPane.showMessageDialog(CoreFrame.this,option+"成功!");
int item = JOptionPane.showConfirmDialog(CoreFrame.this, option + "成功!是否返回功能首页?");
if (item==0){
CoreFrame.this.setVisible(false);
new IndexFrame("文件加密/解密工具");
}
}
});
运行截图
源码
链接:https://pan.baidu/s/1RDgnWak4SYWgUubm7DLd7A
提取码:aiko
exe文件(可直接运行于安装JRE的电脑上):
链接:https://pan.baidu/s/1CUOfIprgveEuywzf9Ql6Uw
提取码:8eb7
更多推荐
Java文件/文件夹 加密解密工具(Swing版)
发布评论