python3 md5加密,Python md5解密
使用标准库python hashlib实现MD5加密和解密。方法有:1。updata传输数据;2.hexdigest用于十六进制转换;
Update(arg)传递arg对象来更新hash的对象。必须注意的是,这个方法只接受字节类型,否则会报错。这就是为什么要在参数前加B来转换类型。
同时需要注意的是,重复调用update(arg)方法会拼接传递的arg参数,而不是覆盖它们。也就是说m . update(a);M.update(b)等价于m.update(a b)。
Hexdigest()在英文中是hex的意思,所以这个方法就是把hash中的数据转换成data,data中只包含十六进制数。
importhashlib
m=hashlib.md5()
m .更新(b123 )
六角文摘
202 CB 962 AC 99075 b 964 b 07152d 234 b 70
#或者可以是这样(最常见的写法,常用于图片命名)
hashlib.md5(b123 )。hexdigest()
202 CB 962 AC 99075 b 964 b 07152d 234 b 70
#也可以使用通用方法hash.new()、hashlib.new(name[,data])。传入的名称是哈希加密算法的名称,例如md5。
hashlib.new(md5 ,b123 )。hexdigest()
202 CB 962 AC 99075 b 964 b 07152d 234 b 70 以上是英文的md5加密。如果要加密中文,按照上面写会报错。原因是字符转码问题。你应该这样写:
importhashlib
Data=你好
hashlib.md5(data.encode(编码=UTF-8 ))。hexdigest()
7 ECA 689 F0 d 3389d 9 dea66 AE 112 e 5 CFD 7 在这里,数据首先被转换成UTF-8格式。将加密结果与在线工具进行对比后,发现部分md5加密工具并未采用UTF-8格式加密。
测试表明可以转换成UTF-8,GBK,GB2312,GB18030,不分大小写(因为GBK/GB2312/GB18030都是汉字的代码,md5加密后的结果是一样的)。
例如:
Hashlib.md5 (Hello )。编码(编码= UTF-8 )。十六进制摘要()
7 ECA 689 F0 d 3389d 9 de a66 AE 112 E5 CFD 7
Hashlib.md5 (hello )。encode (encoding= gbk ))。十六进制摘要()
b 94 AE 3c 6d 892 b 29 cf 48d 9 bea 819 b 27 b 9
Hashlib.md5 (Hello )。编码(encoding= GB 2312 )。Hexdigest()
b 94 AE 3c 6d 892 b 29 cf 48d 9 bea 819 b 27 b 9
Hashlib.md5 (hello )。encode (encoding= gb18030 )。十六进制摘要()
b 94 AE 3c 6d 892 b 29 cf 48d 9 bea 819 b 27 b 9 推荐课程:Python从零开始学编程(黑马程序员)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。