当前位置: 首页 > 后端技术 > Java

md5值是怎么计算出来的?

时间:2023-04-01 21:14:19 Java

md5制作的写法有很多种。今天我们来看一种比较标准的写法,即org.springframework.util中DigestUtils的写法。所有的写作方法都分为两个步骤。第一步是生成摘要的字节数组,它固定为16字节和128位。privatestaticfinalStringMD5_ALGORITHM_NAME="MD5";privatestaticfinalchar[]HEX_CHARS={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};/***计算给定字节的MD5摘要。*@parambytes计算摘要的字节*@return摘要*/publicstaticbyte[]md5Digest(byte[]bytes){returndigest(MD5_ALGORITHM_NAME,bytes);}privatestaticbyte[]digest(Stringalgorithm,byte[]bytes){returngetDigest(algorithm).digest(bytes);}第二步生成16进制字符privatestaticchar[]encodeHex(byte[]bytes){char[]chars=newchar[32];for(inti=0;i>>0x4)&0xf];字符[i+1]=HEX_CHARS[b&0xf];}返回字符;}每个字节将被转换为两个1616进制字符,所以md5最终输出的字符串一共有32个字符,字符范围都在HEX_CHARS中