public class Demo{
public static void main(String[] args){
String s = "小菜举手";
char a[]=s.toCharArray();
for(int i = 0;i < a.length;i++){
a[i] = (char)(a[i]^'t');
}
String secret = new String(a);
System.out.println("密文:" + secret);
for(int i = 0;i < a.length;i++){
a[i] = (char)(a[i]^'t');
}
String code = new String(a);
System.out.println("原文:" + code);
}
}如何理解这个加密的?

解决方案 »

  1.   

    异或运算进行加密,是最简单的加密算法了。
    比如说要加密的十六进制字符串为:0ACH(相当于'小菜举手')
    十六进制密钥为:0E2H(相当于't')
    加密后的密文为:0ACH^0E2H=4EH
    密文与刚才的密钥在异或运算就可以还原字符串:
    4EH^0E2H=0ACH
      

  2.   

    String拆成数组异或一个‘t’,加密,再异或‘t’一次还原
      

  3.   

    异或运算
    char a='t';
    char  b='小';
    char  c=(char) (a^b);