影落离风

The shadow falls away from the wind

0%

你还不知道吗?这里有最简单的使用Java进行文件加密

前言

如果没看的话,可以去飞速的浏览一下,方便这篇博客的理解(我不会告诉你,我是让你帮我的博客增加点击量的)

好,相信你已经过去看了一下。

我是相信你的哦!

那么好,通过对前两篇博客的理解,我便可以开发出一个工具可实现对文件的深加密

这就是这篇博客你还不知道吗?这里有最简单的使用Java进行文件加密要说的可制作jar工具包用来对文件或文件夹进行加密解密,此处点题。

好处

  1. 可对文件进行深加密
  2. 有效的防止别人偷窥你的文件
  3. 加密原理开源,可对算法进行修改;理论上只要别人不知道你的加密原理,即便知道密码,也根本无法破解

简单的介绍下我做的这个加密工具的原理

加密原理

  1. 先对文件或文件夹进行zip压缩

  2. 对压缩后的文件执行加密方法,最后生成后缀为 .mwk的文件为加密文件

解密原理

  1. 对后缀为 .mwk的加密文件进行解密,然后得到同名的压缩包文件

  2. 对压缩包文件解压得到原文件

部分代码如下

说明:依据上述原理进行的操作流程及所需要的参数
ps. 完整代码见文章结尾

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/**
* 加密解密方法执行入口,必须传3个参数
*
* @param args [0] 操作类型:加密传 e ,解密传 d
* [1] 要操作文件的绝对路径
* [2] 加密或解密的密码,必须是数字
*/
public static void main(String[] args) {
//args = new String[]{"e", "E:/test/阿里巴巴Java开发.pdf", "250"};
//args = new String[]{"d", "E:/test/阿里巴巴Java开发.pdf.mwk", "250"};

//参数校验
check(args);
if (!SUCCESS) {
return;
}

System.out.println("执行已开始,请勿随意退出......");
long start = System.currentTimeMillis();

File src = new File(args[1]);
File tempZip;
String title;
switch (args[0]) {
//加密
case E:
//压缩
tempZip = toZip(src);
//加密
encryptFile(tempZip);
title = "加密";
break;
//解密
case D:
//解密
tempZip = decryptFile(src);
//解压
unZip(tempZip);
title = "解密";
break;
default:
errTips(TIPS);
return;
}

总结及注意事项

  • 代码中可能也有不完善的地方,欢迎各位留言指正
  • 因为此代码只是我测试了一些文件加密没问题,不知道会不会有其他问题。所有仅供娱乐、技术研究使用,切勿对自己重要的文件进行加密测试哦
  • 加密完后要牢记密码哦,否则忘记密码则无法解密。其实也可以破解,就是将密码从-128试到127,总共试256次总有一个是对的。这是因为我的加密算法是对byte进行计算的,而byte值的范围只有-128~127
  • 这里讨论的不是说加密算法,而是加密方式。别人不知道你的加密方式,即便知道密码也无法破解,所以说还是要对症下药。你可以对整体的字节流或者部分字节流加密,这也是一种方式

资源路径: