利用异或^为操作符对文件进行加解密

    想到实现这个加密的方式是因为在回顾java前面的知识点的时候,关于^操作符有 a^b^b=a  也就是说b可以作为一个秘钥,而异或则是加密的方法。
文件的io操作,则无非是用字符或字节进行,在底层也是由一串01组成,那么也就是说是字符或字节和整型等也是一样的,能够进行异或操作!所有就写了就结合文件操作和异或的操作符,写了这么一个小程序,实现简单的加解密!哈~大家别笑话!我是后飞IT ....
     哈~明天那个谁,就要回ST参加省考了,老爷保号TA啊~~
package com.yihuo;

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.Reader;
import java.io.Writer;
import java.util.Scanner;

public class Jami {
	public static void main(String[] agrs) throws Exception{
		File f=new File("C:\\jiami.txt");
		Writer oos=new FileWriter(f); 
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入你要输入的内容");
		String content=sc.nextLine();
		oos.write(content);
		oos.flush();
		oos.close();
		Reader iis =new FileReader(f);
		char[] bs=new char[1024];
		int len=0;
		len=iis.read(bs);
		iis.close();
		lock(bs, len);
		System.out.println("亲,你看得懂吗?");
		String s=new String(bs,0,len);
		System.out.println(s);
		unlock(bs,len);
		s=new String(bs,0,len);
		System.out.println("亲,这下看懂了吧!!");
		System.out.println(s);
	}
	private static void unlock(char[] bs, int len) {
		//小小的解密
		for(int i=0;i<len;i++){
			//bs[i]=(char) (bs[i]^'a');    这里的类型是跟^的那个数的数据类型有关的,要两者要转换成相同的
			bs[i]=(char) (((int)bs[i])^1);
		}
	}
	private static void lock(char[] bs, int len) {
		//小小的加密
		for(int i=0;i<len;i++){
			bs[i]=(char) (((int)bs[i])^1);
		}
	}
}
		

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值