Python中用hashlib获取中文字符串MD5的正确方法

版本是2.7.5。调试的时候始终在hashlib求md5的时候出错,但捕捉到的错误又没有错误信息。

找半天发现原来中文的字符串值在使用hashlib.md5()时,需要首先进行一次显式的编码转换(因为不同编码的情况下,二进制的md5值是不同的),明确告知hashlib你要使用的编码类型。

所以下面的语句是正确的:

result=hashlib.md5(czstr.encode(‘gb2312’)).hexdigest()
result=hashlib.md5(czstr.encode(‘utf8’)).hexdigest()