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,求解答
添加回答
舉報
0/150
提交
取消