前言
这是一款自设计的文件加密工具,没有用到多线程和高级流,性能上还是和市面上的软件有很大差异。
基本原理:
Java利用字节型文件流进行文件的复制粘贴,文件加密与解密
Java使用字节型文件流完成文件夹的复制(递归)
并且增加了输入密码对文件进行加密的功能,如果密码输入不正确,解密后的文件是无法查看的。
加密时对所有字节做了处理,因此它适用于普通文本文件的加密。
使用到了递归,因此它也适用于文件夹的加密。
样例代码
funBtn.addMouseListener(new MouseAdapter() {@Overridepublic 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("文件加密/解密工具");}}});
运行截图
源码
链接:/s/1RDgnWak4SYWgUubm7DLd7A
提取码:aiko
exe文件(可直接运行于安装JRE的电脑上):
链接:/s/1CUOfIprgveEuywzf9Ql6Uw
提取码:8eb7