try{
String chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
code = new String(org.apache.commons.codec.binary.Hex.encodeHex(code.getBytes("utf-8")));//此句含义
code = code.toLowerCase();
String ret = "";
char[] chs = new char[code.length()];
for(int i = 0; i < code.length(); i ++)//循环代码块的含义
{
int addx = i%62;
int c = (int)code.charAt(i);
int dx = chars.indexOf(c);
dx = dx + addx;
dx = dx%62;
chs[i] = chars.charAt(dx);
}
ret = new String(chs);
return ret;
------解决方案--------------------------------------------------------
没有上下文这东西干什么的都有可能
转码加密和什么的都可以的
------解决方案--------------------------------------------------------
code = new String(org.apache.commons.codec.binary.Hex.encodeHex(code.getBytes("utf-8")));//此句含义
对输入串按utf-8方式编码并获得其字节数组,再将每一个字节按顺序转换成16进制值表示,得到该hexadecimal string
for(int i = 0; i < code.length(); i ++)//循环代码块的含义
准备通过遍历该串对每一个字符进行处理
------解决方案--------------------------------------------------------
架包下载地址:
http://commons.apache.org/codec/download_codec.cgi
1、转换字符数组到16进制字符串
2、
- Java code
//生成随机数,随机数包括字母和数字最多62位,比方说chars的值 int addx = i%62; //取得指定位置的值转换为整形,因为char和int之间是可以互相转换的,这是用ascii编码来给char赋值 int c = (int)code.charAt(i); //首先把c转换为字符,然后查找相应的所在位置 int dx = chars.indexOf(c); // 从chars字符串中从dx的位置往前移,每次移动一位 dx = dx + addx; // 当移动到最后以为的时候就从0再开始 dx = dx%62; // 赋值到chs[] chs[i] = chars.charAt(dx);
------解决方案--------------------------------------------------------
下载地址:
http://commons.apache.org/codec/
1、转换字符数组到16进制字符串。
2、
- Java code
//生成随机数,随机数包括字母和数字最多62位,比方说chars的值 int addx = i%62; //取得指定位置的值转换为整形,因为char和int之间是可以互相转换的,这是用ascii编码来给char赋值 int c = (int)code.charAt(i); //首先把c转换为字符,然后查找相应的所在位置 int dx = chars.indexOf(c); // 从chars字符串中从dx的位置往前移,每次移动一位 dx = dx + addx; // 当移动到最后以为的时候就从0再开始 dx = dx%62; // 赋值到chs[] chs[i] = chars.charAt(dx);