python3生成MD5值方法与坑

一、生成MD5

import hashlib
m = hashlib.md5()
m.update(b'111')
m.hexdigest()
#'698d51a19d8a121ce581499d7b701668'

或者( 推荐 ):

hashlib.md5(b'111').hexdigest()

又或者:

hashlib.new('md5', b'111').hexdigest()

中文字符计算MD5:

data = '你好'
hashlib.md5(data.encode(encoding='UTF-8')).hexdigest()
#    '7eca689f0d3389d9dea66ae112e5cfd7'
#  此处编码不同可能结果不同,

二、字符转字节:

phone = '123456789'
b_phone = bytes(phone,'utf-8')
#    b'123456789'

或者:

str1="123456789"
bytes_obj = str1.encode('utf-8')
#    b'123456789'

遇到的坑:

使用第一种方法时生成多个MD5,m = hashlib.md5()  这句一定要写在for循环内,否则只有第一次生成的MD5值是对的,后面的值都是错误的。

你可能感兴趣的:(Python,python3,MD5)