python3下,利用hash值对字符串进行md5加密时报错:TypeError: Unicode-objects must be encoded before hashing 原因是:python3跟python2区别:python3下字符串为Unicode类型,而hash传递时需要的是utf-8类型,因此,需要类型转换调用函数时,将字符串进行类型转换 import hashlib def get_md5(s): m = hashlib.md5() m.update(s) r…
Python2中没有这个问题 python3中 hashlib.md5(data)函数中data 参数的类型应该是bytes hash前必须把数据转换成bytes类型 Python 2.7.12 (default, Dec 4 2017, 14:50:18) [GCC 5.4.0 20160609] on linux2 Type "help", "copyright", "credits" or "license" for m…
# hashlib.md5(data)函数中,data参数的类型应该是bytes# hash前必须把数据转换成bytes类型>>> from hashlib import md5 File "<stdin>", line 1, in <module>>>> c = md5("helloworld")TypeError: Unicode-objects must be encoded before hashi…
最近在用python写多语言的一个插件时,涉及到python3.x中的unicode和编码操作,本文就是针对编码问题研究的汇总,目前已开源至github.以下内容来自项目中的README. 1 ASCII.UNICODE.GBK.CP936.MSCS 1.1 ASCII 美国信息交换标准码. 在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位),但其最高位(b7)用作奇偶校验位.ASCII(American Standard Code for Information Interch…
import re from common_p3 import download def crawl_sitemap(url): sitemap = download(url) links = re.findall('<loc>(.*?)</loc>',sitemap) print('links=',links) for link in links: print('link=',link) html = download(link) return crawl_sitemap('ht…