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
原文地址:https://www.cnblogs.com/soberkkk/p/12658645.html