Python编程:Python2.7的MD5编码问题

简介: Python编程:Python2.7的MD5编码问题

测试环境

Python 2.7.5

1、直接做MD5

# -*- coding: utf-8 -*-
import hashlib
s = '20637332019-03-29已受理'
md5 = hashlib.md5(s).hexdigest()
# md5 = hashlib.md5(s.encode("utf-8")).hexdigest()
# UnicodeDecodeError
print(md5)
'a8027582770cfb7efc11f2abe75f9827'

2、引入新特性做MD5

# -*- coding: utf-8 -*-
from __future__ import unicode_literals, print_function
import hashlib
s = '20637332019-03-29已受理'
md5 = hashlib.md5(s.encode('utf-8')).hexdigest()
# md5 = hashlib.md5(s).hexdigest()
# UnicodeEncodeError
print(md5)
'a8027582770cfb7efc11f2abe75f9827'

3、reload之后做MD5

# -*- coding: utf-8 -*-
import hashlib
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
s = '20637262019-03-29已受理'
md51 = hashlib.md5(s).hexdigest()
md52 = hashlib.md5(s.encode("utf-8")).hexdigest()
print(md51)
print(md52)
"""
a8027582770cfb7efc11f2abe75f9827
a8027582770cfb7efc11f2abe75f9827
"""

通过测试

方式

直接做MD5

编码后做md5

直接做MD5

a8027582770cfb7efc11f2abe75f9827

UnicodeDecodeError

引入新特性做MD5

UnicodeEncodeError

a8027582770cfb7efc11f2abe75f9827

reload之后做MD5

a8027582770cfb7efc11f2abe75f9827

a8027582770cfb7efc11f2abe75f9827


Python3之后做MD5必须编码

所以推荐使用 引入新特性做MD5 也就是编码之后在做MD5

相关文章
|
数据安全/隐私保护 Python
Python hashlib 加密方法(MD5、SHA1、SHA256、SHA52)
Python hashlib 加密方法(MD5、SHA1、SHA256、SHA52)
609 0
|
数据安全/隐私保护 Python
Python中的MD5加密“解密”
Python中的MD5加密“解密”
386 0
|
数据采集 数据可视化 数据挖掘
基于python django的scrapy去哪儿网数据采集与分析,包括登录注册和可视化大屏,有md5加密
本文介绍了一个基于Python和Django框架,使用Scrapy进行去哪儿网数据采集与分析的项目,包括实现登录注册功能、MD5加密以及通过可视化大屏展示分析结果的综合系统。
229 1
基于python django的scrapy去哪儿网数据采集与分析,包括登录注册和可视化大屏,有md5加密
|
存储 Serverless 数据安全/隐私保护
使用 Python 获取大文件的 MD5 哈希值
【8月更文挑战第27天】
436 2
|
数据安全/隐私保护 Python
Python中的MD5加密“解密”
Python中的MD5加密“解密”
386 0
|
IDE 开发工具 数据安全/隐私保护
Python编程实现批量md5加密pdf文件
Python编程实现批量md5加密pdf文件
187 0
|
JavaScript 算法 前端开发
国标哈希算法基础:SHA1、SHA256、SHA512、MD5 和 HMAC,Python和JS实现、加盐、算法魔改
国标哈希算法基础:SHA1、SHA256、SHA512、MD5 和 HMAC,Python和JS实现、加盐、算法魔改
1588 1
|
存储 算法 安全
我们来看一个简单的Python代码示例,它使用`hashlib`模块中的`md5()`和`sha256()`函数来计算字符串的哈希值。
我们来看一个简单的Python代码示例,它使用`hashlib`模块中的`md5()`和`sha256()`函数来计算字符串的哈希值。
|
编解码 测试技术 数据安全/隐私保护
小工具实战-Python实现小工具输出字符串大小写转换、字符串统计、编解码、MD5加密
小工具实战-Python实现小工具输出字符串大小写转换、字符串统计、编解码、MD5加密
191 2
|
网络安全 PHP Python
【网络安全 | MD5截断比较】PHP、Python脚本利用
【网络安全 | MD5截断比较】PHP、Python脚本利用
182 0

推荐镜像

更多