题目:
利用“异或”运算的性质,对几个字符进行加密并输出密文,然后再解密 加密算法是:密钥是字符’8‘,明文的每个字符和密钥进行异或运算,得到密文。 密钥和密文的每个字符再次进行异或运算,重新得到明文 加密前原文:十点进攻 密文:卹炁迣攃 解密后原文:十点进攻
代码实现:
public class Test4 {
public static void main(String[] args) {
//定义4个字符代表4个汉字
char h1 = '十';
char h2 = '点';
char h3 = '进';
char h4 = '攻';
System.out.println("加密前原文为:" + h1 + h2 + h3 + h4);
char hanzi1 = (char) (h1 ^ '8');
char hanzi2 = (char) (h2 ^ '8');
char hanzi3 = (char) (h3 ^ '8');
char hanzi4 = (char) (h4 ^ '8');
//这样输出还是数字,因为+号两边是字符的之后,计算机内部会转换成ASCII码的数值
// System.out.println(hanzi1 + hanzi2 + hanzi3 + hanzi4);
System.out.println("密文:" + hanzi1 + hanzi2 + hanzi3 + hanzi4);
hanzi1 = (char) (hanzi1 ^ '8');
hanzi2 = (char) (hanzi2 ^ '8');
hanzi3 = (char) (hanzi3 ^ '8');
hanzi4 = (char) (hanzi4 ^ '8');
System.out.println("解密后原文:" + hanzi1 + hanzi2 + hanzi3 + hanzi4);
}
}
运行截图: