文章内容
当我们需要在数据库中存储用户的密码时,当然是不能明文存储的。我们就是介绍一下用^运算符来实现简单的密码加密以及解密功能。
一、Java异或运算
异或加解密,只需要执行同一步骤就可以实现解密了。注意:Java异或运算得到的内容为16进制结果,控制台打印为乱码,不影响使用
public static String xor(String data, String key) {
StringBuilder sb = new StringBuilder();
if (isNotEmpty(data) && isNotEmpty(key)) {
for (int i = 0; i < data.length(); i++) {
char c = data.charAt(i);
char k = key.charAt(i % key.length());
char ch = (char) (c ^ k);
sb.append(ch);
}
}
return sb.toString();
}
public static boolean isNotEmpty(String str) {
return !isEmpty(str);
}
二、示例
public static void main(String[] args) {
String str1 = xor("285123213", "39490512");
System.out.println(str1);
System.out.println(xor(str1, "39490512"));
}
注意:因结果为16进制,控制台打印为乱码
控制台输出:
285123213
16进制显示效果为:
x01x01x01bx02x06x03x03x20
285123213