直接上代码,下面是我自己封装的一个工具类
/**
* 1、密钥是去掉分隔符的UUID,由 32 个 16进制 字符组成
* 2、encode 加密时将待加密字符串中的每一个字符与密钥的对应位置进行加法运算
* 3、decode 解密时将待解密字符串中的每一个字符与密钥的对应位置进行减法运算
* 4、edcode 加密和解密为一体,使用异或操作实现
* 注意:不论加密还是解密,待操作的字符串长度都不能大于 32
*/
public class Code {
// 加密数据
public static String encode(String str, String key) {
String sct = "";
int length = str.length();
for(int i = 0; i < length; i++) {
sct += (char)(str.charAt(i) + key.charAt(i));
}
return sct;
}
// 解密数据
public static String decode(String str, String key) {
String sct = "";
int length = str.length();
for(int i = 0; i < length; i++) {
sct += (char)(str.charAt(i) - key.charAt(i));
}
return sct;
}
// 加密解密合为一体 异或
public static String edcode(String str, String key) {
byte []str_byte = str.getBytes();
byte []key_byte = key.getBytes();
for(int i = 0; i < str_byte.length; i++) {
str_byte[i] = (byte)(str_byte[i] ^ key_byte[i]);
}
return new String(str_byte);
}
// 获取密钥
public static String getKey() {
String uuid = UUID.randomUUID().toString();
return uuid.replace("-", "");
}
}