在加密算法中,经常会遇到将加密后得到的二进制字节数组转16进制字符串后返回;在解密算法中,则需要将字符串转二进制然后解密;下面将列举常用的几种转换方法,在文末会给出几种常用加解密算法示例。
1、二进制数组转十六进制
/**
* 将二进制转成16进制,加密时用(方式之一)
*
* @param bytes 加密得到的二进制字节数组
* @return
*/
public static String parseBytes2Hex(byte[] bytes) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < bytes.length; i++) {
String hex = Integer.toHexString(bytes[i] & 0xFF);
if (hex.length() == 1) {
hex = "0" + hex;
}
sb.append(hex.toUpperCase());
}
return sb.toString();
}
该种方式是需要遍历字节数组,然后进行与运算后转16进制字符串,之后拼接。第二种方式原理上相似,不过采用的是字符格式处理,避免补0操作,更为高效,如下所示:
/**
* 将二进制转为16进制字符串,StringBuilder单线程安全,效率高(推荐)
* @param bytes
* @return
*/
public static String toHex(byte[]