简单实用的签名加密 就是 进行 位运算,连续两次位运算 即可还原解密,方便,但是 缺点 是 保密性低。
/**
* key 可以 自定义 具体值
* 建议使用 7
* 十进制 二进制
* 1 0001
* 3 0011
* 7 0111
* 15 1111
*/
@Test
public void testEncrypt(){
String str = "J0V7Q8eR9Qo4cW19Q742"; // 签名
int key = 7;
String encrypt = encrypt(str, key); // 第一次加密
System.out.println(encrypt); // M7Q0V?bU>Vh3dP6>V035
String decrypt = encrypt(encrypt, key); // 解密、还原
System.out.println(decrypt); // J0V7Q8eR9Qo4cW19Q742
}
/**
* 使用 异或 ,两次异或 就可以解密/还原
*/
public String encrypt(String str, int key) {
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length; i++) {
chars[i] = (char) (chars[i] ^ key);
}
return new String(chars);
}