Base64编码
最重要的事情放第一行:参考男神阮一峰的base64博客
按照男神说法,base64核心是把24位二进制bit分为4组,每组6位bit,再在每组前加两个bit的0,新的每组为8位bit,共32位bit。以新的8位bit组来映射字符集,8位共0-63种状态,映射关系如 : 0 -> A 、 1->B 、 63->/ 、 垫字符=
显然的,编码后的字符量会增加约25%
"%02x"编码
二进制bit以16进制的字符表示
x:输入表示二进制
02:输出至少2位字符,不足的前面加"0"字符
SecureRandom random = SecureRandom.getInstanceStrong();
byte[] temp = new byte[20];
random.nextBytes(temp);
StringBuffer sb = new StringBuffer();
for (byte b : temp) {
sb.append(String.format("%02x",b));
}
String out = sb.toString();
编码效果如 : 00011000 -> "19"
这样一个byte会变成2个字符,相比一个byte对应一个字符的编码方式,编码量增加50%
小弟认为,base64比%02x编码方式更加节约空间