使用异或对字符串加密与解密

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34491508/article/details/81949685

使用异或对字符串加密

使用异或运算加密/解密字符串的原理(对应的二进制相同为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);
    }
}

猜你喜欢

转载自blog.csdn.net/qq_34491508/article/details/81949685