python hashlib 模块

hashlib

用于加密相关的操作,代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法

 

import hashlib

update()方法用于对字符串"abc"做MD5加密
hexdigest()方法用于查看hash值
 
# 生成加密对象
h = hashlib.md5()

h.update(b"byby")
print(h.hexdigest()) # 16进制格式hash
h.update(b"toto")
print(h.hexdigest())
python2.7里面 update 传的是字符串可以

python3 一定穿的是是字节bytes类型 才可以

import hashlib

h = hashlib.md5()
h.update("byby")
print(h.hexdigest()) # 16进制格式hash


'''
Traceback (most recent call last):
  File "C:/Users/Administrator/PycharmProjects/ss/SSS/day5/hashlib 模块/hashlib mod 3.6 传的是字节.py", line 9, in <module>
    h.update("byby")
TypeError: Unicode-objects must be encoded before hashing

'''

在字符串 前面加上 b 

import hashlib

h = hashlib.md5()
h.update(b"byby")
print(h.hexdigest()) # 16进制格式hash


# 01130a5b7b2173871250ca9227d1965c

或者用encode


import hashlib

h = hashlib.md5()
h.update("byby".encode("utf-8"))
print(h.hexdigest()) # 16进制格式hash


# 01130a5b7b2173871250ca9227d1965c


还有bytes("字符串", encoding="utf-8")
import hashlib

h = hashlib.md5()
h.update(bytes("byby",encoding="utf-8"))
print(h.hexdigest()) # 16进制格式hash


# 01130a5b7b2173871250ca9227d1965c









原文地址:https://www.cnblogs.com/mingerlcm/p/8037794.html