python学习目录05-hashlib-hmac-copy-uuid模块的语法

加密算法: 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()) # 使用最多
posted @ 2022-01-04 18:18  测试圈的彭于晏  阅读(61)  评论(0)    收藏  举报