JAVA加密文件小工具

发布时间 2024-01-07 13:06:32作者: 加固文明幻景

以前用C做了一个加密文件的小工具,很有成就感。

那么JAVA要怎么做呢。

有关\(API\)

下文默认已了解基本原理。

字节与字符

要加密肯定是直接操作字节了。

但我们先看看JAVA常用的字符读入方式。

  • ISR 桥接 FIP (用BFR包装提速)

    • BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("test.in"))); 
      
  • 包装类FlieReader (继承自ISR)

    • FileReader in = new FileReader("test.in");
      

两个方式本质上是一样的,都是先通过 InputStream (这里是子类 FIP) 把字节读下来, 然后通过桥接器 InputStreamReader 转字节为字符。FR 只是把这个过程包装起来(源码很显然了)。

那么, 要读字节,直接用 FIP 即可。

FileInputStream fip = new FileInputStream("test.in");

迫真加密

当然,这里就不用什么高阶加密算法了,直接来个全部加 \(5\) 的加密!。

  • 初始文件

    遇到困难睡大觉
    
  • 加密加五

    public static void solve() throws IOException {
    	File f = new File("C:\\Users\\zjc\\Desktop\\before2023\\test.in");
    	FileInputStream fip = new FileInputStream(f);
    	byte[] b = fip.readAllBytes();//得到一串字节码,-128 - 127
    	for (int i = 0; i < b.length; i++) b[i] += 5;//逆天加密
    	fip.close();
    	FileOutputStream fop = new FileOutputStream(f);
    	fop.write(b);
    	fop.close();
    }
    
  • 加密文件

    佧郝努芍写锅铭
    
  • 解密减五

    public static void solve() throws IOException {
    	File f = new File("C:\\Users\\zjc\\Desktop\\before2023\\test.in");
    	FileInputStream fip = new FileInputStream(f);
    	byte[] b = fip.readAllBytes();//得到一串字节码,-128 - 127
    	for (int i = 0; i < b.length; i++) b[i] -= 5;//逆天解密
    	fip.close();
    	FileOutputStream fop = new FileOutputStream(f);
    	fop.write(b);
    	fop.close();
    }
    
  • 解密文件

    遇到困难睡大觉