使用异或对字符串加密
使用异或运算加密/解密字符串的原理(对应的二进制相同为0不同为1)
1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0
第一种:
public class DMEO {
private static final int key =6;//定义好的密文数字
public static void main(String[] args) {
System.out.println("输入要加密/解密的字符串");
Scanner in = new Scanner(System.in);
String string = in.next();
char[] charArry = string.toCharArray();
for(int i=0;i<charArry.length;i++) {
charArry[i] = (char)(charArry[i]^key);
}
System.out.println("密文/原文:"+new String(charArry));
}
}
第二种
public class DMEO {
private static final char key ='空';//定义好的密文数字
public static void main(String[] args) {
StringBuffer str1 = new StringBuffer();//存储加密的字符串
StringBuffer str2 = new StringBuffer();//存储解密的字符串
System.out.println("输入要加密/解密的字符串");
Scanner in = new Scanner(System.in);
String string = in.next();
for(int i=0;i<string.length();i++) {
char c = (char) (string.charAt(i)^key);
str1.append(c);
}
System.out.println("密文:"+str1);
for(int i=0;i<str1.length();i++) {
char d= (char)(str1.charAt(i)^key);
str2.append(d);
}
System.out.println("原文:"+str2);
}
}