/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// your code goes here
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCX0KfQ==
cGFja2FnZSBteS50ZXN0OwppbXBvcnQgamF2YS51dGlsLlNjYW5uZXI7CgovKioKICog5Yip55So5bCG5piO5paH5LiO56eY6ZKl5byC5oiW55qE5pa55rOV5a6e546w5byC5oiW5Yqg5a+G6L+Q566XCiAqIEBhdXRob3IgbGoKICogMjAyMOW5tDnmnIgyOOaXpQogKi8KcHVibGljIGNsYXNzIEVuY3J5cHRpb24gewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIFNjYW5uZXIgc2MgPSBuZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigmcXVvdDvor7fovpPlhaXopoHliqDlr4bnmoTmmI7mlocmcXVvdDspOwogICAgICAgIFN0cmluZyBzID0gc2MubmV4dExpbmUoKTsKCiAgICAgICAgLyoqCiAgICAgICAgICog6aaW5YWI5a6a5LmJ5LiA5Liq56eY6ZKlCiAgICAgICAgICovCiAgICAgICAgY2hhciBrZXkgPSAnYic7CiAgICAgICAgY2hhcltdIGNhID0gcy50b0NoYXJBcnJheSgpOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpICZsdDsgY2EubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgY2FbaV0gPSAoY2hhcikgKGNhW2ldIF4ga2V5KTsKICAgICAgICB9CgogICAgICAgIC8qKgogICAgICAgICAqIOi+k+WHuuWKoOWvhuWQjueahOWvhuaWhwogICAgICAgICAqLwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigmcXVvdDvliqDlr4blkI7nmoTlr4bmlofmmK8mcXVvdDsgKyAmcXVvdDtcdCZxdW90OyArIG5ldyBTdHJpbmcoY2EpKTsKCiAgICAgICAgLy8g6Kej5a+G77yI5YaN5qyh5byC5oiW77yJCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgJmx0OyBjYS5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBjYVtpXSA9IChjaGFyKSAoY2FbaV0gXiBrZXkpOwogICAgICAgIH0KICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oJnF1b3Q76Kej5a+G5ZCO55qE5piO5paH5pivJnF1b3Q7ICsgJnF1b3Q7XHQmcXVvdDsgKyBuZXcgU3RyaW5nKGNhKSk7CgogICAgICAgIHNjLmNsb3NlKCk7CiAgICB9Cn0=
package my.test;
import java.util.Scanner;
/**
* 利用将明文与秘钥异或的方法实现异或加密运算
* @author lj
* 2020年9月28日
*/
public class Encryption {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要加密的明文");
String s = sc.nextLine();
/**
* 首先定义一个秘钥
*/
char key = 'b';
char[] ca = s.toCharArray();
for (int i = 0; i < ca.length; i++) {
ca[i] = (char) (ca[i] ^ key);
}
/**
* 输出加密后的密文
*/
System.out.println("加密后的密文是" + "\t" + new String(ca));
// 解密(再次异或)
for (int i = 0; i < ca.length; i++) {
ca[i] = (char) (ca[i] ^ key);
}
System.out.println("解密后的明文是" + "\t" + new String(ca));
sc.close();
}
}