日期:2014-05-20 浏览次数:21303 次
public class Test {
public static void main(String[] args) {
String plainText = "walykyy(斌斌),walykyy(斌斌)";
// 加密
String crypt = encrypt(plainText, 1233210);
System.out.println(crypt);
// 解密
String plain = encrypt(crypt, 1233210);
System.out.println(plain);
}
private static String encrypt(String plain, int key) {
char[] chars = plain.toCharArray();
char[] crypt = new char[chars.length];
for(int i = 0, k = chars.length; i < k; i++) {
// 随便扰乱一下,为了让相同的字符,出现密文也不同
key ^= key * key + i;
// 这里之所以要强转成char,是因为对于char来说,^计算出来的结果是int
// int 的范围要大于char,所以就要强转(PS:char也是一个数值,对应着
// 一个字符的Unicode值。char占两个字节,从0~65535)。
crypt[i] = (char)(chars[i] ^ key);
}
return new String(crypt);
}
}