前言

有时需要加密保存数据,但是我不会用AES……所以选择了更简单的异或加密。

解决方案

    public static String xor(String data, String password) {
        //异或加密
        byte b1[] = data.getBytes();
        byte b2[] = password.getBytes();
        byte longbytes[], shortbytes[];
        if (b1.length >= b2.length) {
            longbytes = b1;
            shortbytes = b2;
        } else {
            longbytes = b2;
            shortbytes = b1;
        }
        byte xorstr[] = new byte[longbytes.length];
        int i = 0;
        for (; i < shortbytes.length; i++) {
            xorstr[i] = (byte) (shortbytes[i] ^ longbytes[i]);
        }
        for (; i < longbytes.length; i++) {
            xorstr[i] = longbytes[i];
        }
        return new String(xorstr);
    }