Python编程:Python2.7的MD5编码问题-阿里云开发者社区

开发者社区> 开发者小助手-bz> 正文

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编程:flask-cors模块解决Flask跨域请求Cross-Origin问题
Python编程:flask-cors模块解决Flask跨域请求Cross-Origin问题
16 0
Python中的编码错误问题
设置python运行环境的编码参考这里   http://diveintopython.org/xml_processing/unicode.html 《Dive Into Python》 的 Example 9.
602 0
Python编程:MySQLdb模块的安装
Python编程:MySQLdb模块的安装
22 0
Linux下多线程编程遇到的一些问题
今天在学习了Linux的多线程编程的基础的知识点。于是就试着做了一个简单的Demo。本以为会得到预期的结果。不成想却遇到了意想不到的问题。 代码展示 我的C 代码很简单,就是一个简单的示例程序,如下: #include #include #include i...
719 0
Python编程:reload热更新代码
Python编程:reload热更新代码
17 0
Python编程:10个面试常问的问题
Python编程:10个面试常问的问题
85 0
1569
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载