使用过hashlib库的朋友想必都遇到过以下的错误吧:“Unicode-objects must be encoded before hashing”,意思是在进行md5哈希运算前,需要对数据进行编码.而且在不同版本的Python下还有所不同,唉Python还需努力啊,接口和消 息都很不稳定. hashlib.md5(data)函数中,data参数的类型应该是bytes.也就是说我们在进行hash前必须把数据转换成bytes类型,对于C程序而言似乎没有类似问题,指针强制转换就OK了. 对于中文,
1.报错信息是:TypeError: Unicode-objects must be encoded before hashing 2.报错信息是:TypeError: object supporting the buffer API required 正确的写法应该是 代码: import hashlibdef md5pwd(password): m = hashlib.md5() m.update(password) mpwd = m.hexdigest() return mpwdprint
MD5是什么! Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992). MD5 即 Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致.是计算机广泛使用