1、如果文本不是中文的话,不需要编码
mport hashlib #导入hash库函数
md5_object = hashlib.md5() #创建一个MD5对象
md5_object.update(b'123456abc') #添加去要加密的文本
md5_result = md5_object.hexdigest() #获取加密结果
print(md5_result) #打印加密后的密码 #测试结果,是md5 32位加密
2、如果文本是中文的话,需要进行编码编码
#-*- coding:utf-8 -*-
import hashlib #导入hash库函数
mima= '你好' #用户原密码
Jpwd = hashlib.md5() # 创建md5对象 md5加密
Jpwd.update(mima.encode('utf-8')) # 更新Jpwd对象的值 # 如果不使用encode()则会报错
Npwd= Jpwd.hexdigest() # 进行加密获取加密后的结果
print(Npwd) #打印加密后的密码
3、此处先将数据转换成UTF-8格式的,使用网上工具对比下加密的结果,发现有的md5加密工具并不是使用UTF-8格式加密的。
经测试目前发现可以转为UTF-8、GBK、GB2312、GB18030,不分大小写(因为GBK/GB2312/GB18030均是针对汉字的编码,所以md5加密后结果一样)。
>>> hashlib.md5('你好'.encode(encoding='UTF-8')).hexdigest()
'7eca689f0d3389d9dea66ae112e5cfd7'
>>> hashlib.md5('你好'.encode(encoding='GBK')).hexdigest()
'b94ae3c6d892b29cf48d9bea819b27b9'
>>> hashlib.md5('你好'.encode(encoding='GB2312')).hexdigest()
'b94ae3c6d892b29cf48d9bea819b27b9'
>>> hashlib.md5('你好'.encode(encoding='GB18030')).hexdigest()
'b94ae3c6d892b29cf48d9bea819b27b9'