hashlib

hashlib:加密

作用:加密和校验

1、只要明文相同,密文就是相同

2、只要明文不相同,密文就是不相同

3、不能反译(不能解密)

加密步骤:

1、加密的内容

2、将要加密的内容转换成字节

最常用的是md5,平时加密的时候使用sha1

yulin:45184a42316254195185b5f05f5dbcd8

md5:校验(因为被破解,不能当做加密)

import hashlib
md5 = hashlib.md5()  # 初始化md5加密工具
md5.update("yulin123".encode("utf-8"))  # 编码集无关,只要转二进制
print(md5.hexdigest())

yulin:92b2e43a7093b80ddcaa36dbda57f893be717501

sha1:加密

import hashlib
sha1 = hashlib.sha1()  # 初始化sha1加密工具
sha1.update("yulin123".encode("utf-8"))  # 编码集无关,只要转二进制
print(sha1.hexdigest())

sha512

import hashlib
sha512 = hashlib.sha512()  # 初始化sha512加密工具
sha512.update("yulin123".encode("utf-8"))  # 编码集无关,只要转二进制
print(sha512.hexdigest())

固定加盐:

import hashlib
md5 = hashlib.md5("可乐".encode("utf-8"))
md5.update("yulin123".encode("utf-8"))
print(md5.hexdigest())

动态加盐:

import hashlib
user = input("username:")
pwd = input("password:")
md5 = hashlib.md5(user.encode("utf-8"))
md5.update("yulin123".encode("utf-8"))
print(md5.hexdigest())
ss = "yulinisliangzai"
s = "yulin"
s1 = "is"
s2 = "liangzai"

import hashlib
md5 = hashlib.md5()
md5.update(ss.encode("utf-8"))
print(md5.hexdigest())

md5 = hashlib.md5()
md5.update(s.encode("utf-8"))
md5.update(s1.encode("utf-8"))
md5.update(s2.encode("utf-8"))
print(md5.hexdigest())

校验:2f8a736eeb307a27f1998cfd07f22440

import hashlib
f = open(r"/Users/ylinn/python_pycharm/day17/python-3.8.5-macosx10.9.pkg", "rb")
md5 = hashlib.md5()
while True:
    msg = f.read(1024)
    if msg:
        md5.update(msg)
    else:
        print(md5.hexdigest())  # 2f8a736eeb307a27f1998cfd07f22440
        break
posted @ 2020-10-30 08:18  Ylinn  阅读(144)  评论(0)    收藏  举报