10.5、hashlib
摘要算法:通过函数把任意长度的数据转换为一个长度固定的数据串(16进制)
MD5、SHA1
摘要算法就是通过摘要函数f()
对任意长度的数据data
计算出固定长度的摘要digest
,目的是为了发现原始数据是否被人篡改过。
import hashlib
md5=hashlib.md5()
md5.update('how to use md5 in pyhton hashlib'.encode('utf-8'))
print(md5.hexdigest())
import hashlib
md5=hashlib.md5()
md5.update('how to use md5 '.encode('utf-8'))
md5.update('in pyhton hashlib'.encode('utf-8'))
print(md5.hexdigest())
0ffdcd300cfb86a68d070e9c77c60d3b
MD5是最常见的摘要算法,速度很快,生成结果是固定的128 bit字节,通常用一个32位的16进制字符串表示。
import hashlib
sha1=hashlib.sha1()
sha1.update('abc'.encode('utf-8'))
sha1.update('def'.encode('utf-8'))
print(sha1.hexdigest())
1f8ac10f23c5b5bc1167bda84b833e5c057a77d2
SHA1的结果是160 bit字节,通常用一个40位的16进制字符串表示。
def login(user, password):
if user in db.keys():
md5=hashlib.md5()
md5.update(password.encode('utf-8'))
if md5.hexdigest()==db[user]:
return True
else:
return False
else:
return False