直接上代碼,下面是我自己封裝的一個工具類
/**
* 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("-", "");
}
}