对于一个字符串做md5,例如:"2e08539049ac0f6b5b4377ec20145c06
,即十六进制的表示形式,长度一般是32位,有人也用16位的表示,就是把32位的字符串前后各去掉8位后的结果,但不多见。还有就是用md5的digest值,这是一个16字节的字符串,不容易看,但可以转换成ascii后观察,比如上面的digest就是:[46, 8, 83, 144, 73, 172, 15, 107, 91, 67, 119, 236, 32, 20, 92, 6]
, 如果你还看不清的话,可以考虑把这些ascii转成十六进制再看看:['2e', '08', '53', '90', '49', 'ac', '0f', '6b', '5b', '43', '77', 'ec', '20', '14', '5c', '06']
,是不是很熟悉了,对就是一开始那个32位长的字符串。
在对某通的接口开发中遇到对发送数据校验,文档中说的是对数据进行md5再做base64,通常就是把那个32位长的字符串做base64,但怎么也对不上,后来再研究发现其实是用digest的结果做base64,太坑人了是吧,文档这个东西,能写详细就写详细点,没坏处。