-
/*0-9对应Ascii 48-57
-
*A-Z 65-90
-
*a-z 97-122
-
*第33~126号(共94个)是字符,其中第48~57号为0~9十个阿拉伯数字
*/
/**
* ASCII码hex字符串转String明文
* 每两个字符表示的16进制ASCII码解析成一个明文字符
* @param hex
* @return
*/
public static String hex2Str(String hex) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hex.length() - 1; i += 2) {
String h = hex.substring(i, (i + 2));
int decimal = Integer.parseInt(h, 16);
sb.append((char) decimal);
}
return sb.toString();
}
/**
* String明文转ASCII码hex字符串
* 一个明文字符生成两个字符表示的16进制ASCII码
* @param str
* @return
*/
public static String str2Hex(String str) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
// 这里的第二个参数16表示十六进制
sb.append(Integer.toString(c, 16));
}
return sb.toString();
}
System.out.println(hex2Str("3132302E37382E3134342E3137343A38353939"));
System.out.println(str2Hex("120.78.144.174:8599"));
测试: