Base64編碼+兩串異或操作
阿新 • • 發佈:2019-01-31
使用到jar包:commons-codec.jar
/** * base64編碼 * * @param s * @param key * @return */ public static String encode(String s, String key) { return base64Encode(xorWithKey(s.getBytes(), key.getBytes())); } /** * base64解碼 * * @param s * @param key * @return */ public static String decode(String s, String key) { return new String(xorWithKey(base64Decode(s), key.getBytes())); } private static byte[] base64Decode(String s) { return Base64.decodeBase64(s); } private static String base64Encode(byte[] bytes) { byte[] encodeBase64 = Base64.encodeBase64(bytes); return new String(encodeBase64); } /** * 兩個字串異或 * * @param a * @param key * @return */ public static byte[] xorWithKey(byte[] a, byte[] key) { byte[] out = new byte[a.length]; for (int i = 0; i < a.length; i++) { out[i] = (byte) (a[i] ^ key[i % key.length]); } return out; }