加密算法: MD5 sha
# hashlib 和 hmac模块:用来进行数据加密
# hashlib 模块里主要支持两个算法  md5 和, sha 加密
# 加密方式: 
    1:单向加密:md5/sha,只有加密的过程,不能解密;
    2:对称加密;
    3:非对象加密rsa
MD5加密
# 需要将加密的内容转换成为二进制
import hashlib
msg="哈哈"
md5=hashlib.md5(msg.encode('utf-8')) # 生成一个md5对象
print(md5.hexdigest())  ## 32位长度,取出十六进制的加密内容:8c8fa3529ee34d4e69a0baafb7069da3
x=hashlib.md5() # 生成一个md5对象
x.update('msg.encode('utf=8')) # md5加密格式
print(x.hexdigest()) # 打印加密结果,可网上搜索MD5解析进行反向解密(cmd5.com))
sha 是一个系列的加密
h1=hashlib.sha1('12345'.encode("utf-8"))
print(h1.hexdigest())  # 40位长度
h2=hashlib.sha224('12345'.encode("utf-8")) #224位 一个十六进制占4位224/4=56
print(h2.hexdigest())   # 56位长度
 
h3=hashlib.sha256('12345'.encode("utf-8"))
print(h3.hexdigest()) # 64位长度
h4=hashlib.sha384('12345'.encode("utf-8"))
print(h4.hexdigest()) # 96位长度
练习:密码验证
import hashlib
password = "123456"
list1 = []
sha256 = hashlib.sha256(password.encode("utf-8"))
list1.append(sha256.hexdigest())
print(list1)
pwd = input("请输入密码:")
sha256 = hashlib.sha256(pwd.encode("utf-8"))  # sha256.update 更新状态
pwd = sha256.hexdigest()
print(pwd)
for i in list1:
    if pwd == i:
        print("登陆成功")
copy模块
# 复制模块:有copy和deepcopy两个函数,分别用来对数据进行深复制和浅复制
import copy
nums=[1,2,3,4,[5,4,3],6,7,8]
num1=copy.copy(nums) #对nums列表进行浅复制
num2=copy.deepcopy(nums) #对nums列表进行深复制
uuid
# uuid用来生成一个全局唯一的id
import uuid
print(uuid.uuid1()) #32个长度  每一个字符有16个选择  16**32
print(uuid.uuid2()) # 没有uuid2,不能用
# uuid3 和uuid5 是使用传入的字符串根据指定的算法算出来的,是固定的
print(uuid.uuid3(uuid.NAMESPACE_DNS,'zhangsan')) # 生成固定的uuid
print(uuid.uuid5(uuid.NAMESPACE_DNS,'zhangsan')) # 生成固定的uuid
print(uuid.uuid4()) # 使用最多