JAVA:亦或2次

import java.io.*;
import java.util.Scanner;
public class Screct {	
	public static void main(String[] args) {
		try {
		Scanner in=new Scanner(System.in);
		System.out.print("输入要加密的信息:");
		String s=in.nextLine();   //输入需要加密的信息
		char[] c=s.toCharArray();
		System.out.print("输入秘钥字符:");		
		char key=(char) System.in.read();
		in.close();
		for(int i=0;i<c.length;i++) {
			c[i]=(char) (c[i]^key);
		}		
		File file=new File("file.txt");
		if(!file.exists()) {			
				file.createNewFile();			
		}
		
		FileWriter fw=new FileWriter((file));
		System.out.println("密文:"+String.valueOf(c));
		fw.write(c);
		fw.close();
		FileReader fr=new FileReader(file);
		fr.read(c);
		for(int i=0;i<c.length;i++) {
			c[i]=(char) (c[i]^key);
		}	
		
		System.out.println("明文:"+String.valueOf(c));
		fr.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

以上是我写的一个把文字加密到txt文件然后再解密回来的一个代码,然后不知道为什么,输入的如果是纯英文或者全中文或者全符号都能正确翻译回来,但是像图上这种混合的就会把符号读成VVVVVV,求解答http://img1.mukewang.com/5a7c5bab0001a0cc02860143.jpg

肖科夫斯基
浏览 1129回答 1
1回答

产品经理不是经理

我运行你的代码没出现你说的情况,你把所有的编码都改成utf-8了吗?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java