一、前言
关于定义CrypterUtil转码工具类,进行数组转16进制字符串byteArr2HexStr处理、16进制字符串转数组hexStr2ByteArr处理,详情参见代码示例。
二、代码示例
public class CrypterUtil {@b@ /**@b@ * 数组转16进制字符串@b@ * @param arrB@b@ * @return@b@ * @throws Exception@b@ */@b@ public static String byteArr2HexStr(byte[] arrB) throws Exception { @b@ int iLen = arrB.length;@b@ // 每个byte用两个字符才能表示,所以字符串的长度是数组长度的两倍@b@ StringBuffer sb = new StringBuffer(iLen * 2);@b@ for (int i = 0; i < iLen; i++) {@b@ int intTmp = arrB[i];@b@ // 把负数转换为正数@b@ while (intTmp < 0) {@b@ intTmp = intTmp + 256;@b@ }@b@ // 小于0F的数需要在前面补0@b@ if (intTmp < 16) {@b@ sb.append("0");@b@ }@b@ sb.append(Integer.toString(intTmp, 16));@b@ }@b@ // 最大128位@b@ String result = sb.toString();@b@// if(result.length()>128){@b@// result = result.substring(0,result.length()-1);@b@// }@b@ return result;@b@ }@b@ @b@ /**@b@ * 16进制字符串转数组@b@ * @param strIn@b@ * @return@b@ * @throws Exception@b@ */@b@ public static byte[] hexStr2ByteArr(String strIn) throws Exception {@b@ byte[] arrB = strIn.getBytes();@b@ int iLen = arrB.length;@b@@b@ // 两个字符表示一个字节,所以字节数组长度是字符串长度除以2@b@ byte[] arrOut = new byte[iLen / 2];@b@ for (int i = 0; i < iLen; i = i + 2) {@b@ String strTmp = new String(arrB, i, 2);@b@ arrOut[i / 2] = (byte) Integer.parseInt(strTmp, 16);@b@ }@b@ return arrOut;@b@ }@b@}