自定义加解密字节数据的加密解密方法
package com;
import java.io.UnsupportedEncodingException;
/**
*
* String decrypt and encrypt
*
*/
public class MyEncryptUtil {
private static String key = "Crackersandthethiefwillsuffermisfortune";
private static String encoding = "utf-8";
public static String getKey() {
return key;
}
public static void setKey(String key) {
MyEncryptUtil.key = key;
}
public static String getEncoding() {
return encoding;
}
public static void setEncoding(String encoding) {
MyEncryptUtil.encoding = encoding;
}
public static String encrypt(String str) {
return getString(encrypt(getByteArray(str)));
}
public static String decrypt(String str) {
return getString(decrypt(getByteArray(str)));
}
/**
* encrypt
*
* @param buffer
* to be encrypted
* @return encrypt result
*/
public static byte[] encrypt(byte[] buffer) {
int pos, keylen;
pos = 0;
byte[] KEYVALUE = null;
try {
KEYVALUE = key.getBytes(encoding);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
keylen = KEYVALUE.length;
for (int i = 0; i < buffer.length; i++) {
buffer[i] ^= KEYVALUE[pos];
pos++;
if (pos == keylen)
pos = 0;
}
return buffer;
}
/**
* decrypt
*
* @param buffer
* to be decrypted
* @return decrypt result
*/
public static byte[] decrypt(byte[] buffer) {
return encrypt(buffer);
}
/**
* trans
*
* @param buffer
* @return if excption null
*/
public static String getString(byte[] buffer) {
try {
return new String(buffer, encoding);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return null;
}
}
/**
*
* @param str
* @return if excption null
*/
public static byte[] getByteArray(String str) {
try {
return str.getBytes(encoding);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return null;
}
}
public static void main(String[] args) {
try {
MyEncryptUtil.setEncoding("gbk");
String ens= MyEncryptUtil.encrypt("id=12&idno=120020120210223&name=faasss中文" ) ;
System.out.println(ens);
String src= MyEncryptUtil.decrypt(ens);
System.out.println(src);
} catch (Exception e) {
e.printStackTrace();
}
}
}