最近处理MD5加密,碰到了md5_bin和md5两种方式,查看源码,记录下。
//nginx中源码
u_char *ngx_hex_dump(u_char *dst, u_char *src, size_t len)
{
static u_char hex[] = "0123456789abcdef";
while (len--) {
*dst++ = hex[*src >> 4];
*dst++ = hex[*src++ & 0xf];
}
return dst;
}
src是存储16进制的内存字符数组,dst是转为字符数组后存储数组,长度会放大一倍。
1. 16进制内存字符数组,一个字符8位,4位转为一个字符,所以放大一倍。
2. *src >> 4,前4位,*src++ & 0xf,后4位。