hashlib 模块 摘要算法
2024-10-11 06:43:49
应用于用户登陆,对密码进行加密操作,
#文件操作
# hashlib 摘要算法
#md5 算法: 是32位的16进制组成的数字字符组成的字符串
#应用最广的摘要算法
#效率高,相对不复杂,如果只是传统摘要不安全
#sha 算法 :40位的16进制组成的数字字符组成的字符串
#sha算法比md5算法要更加复杂
#且sha n 算法越大越安全,耗时越久
普通用法
from hashlib
def get_md5(s):
md5_obj = hashlib.md5()
md5_obj.update(s.encode("utf-8"))
ret = md5_obj.hexdigest()
return ret
l1 = get_md5("alex123")
print(l1) #b75bd008d5fecb1f50cf026532e8ae67
为防止非法人员恶意盗取
加盐用法
# def get_md5(s):
# md5_obj = hashlib.md5("盐".encode("utf-8")) #盐是不变的
# md5_obj.update(s.encode("utf-8"))
# ret = md5_obj.hexdigest()
# return ret
动态加盐
# def get_md5(name,pwd):
# md5_obj = hashlib.md5(name.encode("utf-8"))
# md5_obj.update(pwd.encode("utf-8"))
# ret = md5_obj.hexdigest()
# return ret
# l1 = get_md5("alex","alex123")
# print(l1)
def get_md5(name,pwd):
md5_obj = hashlib.md5((name+pwd).encode("utf-8"))
return md5_obj.hexdigest()
print(get_md5("alex","alex123"))
#判断文件的一致性校验
# md5_obj = hashlib.md5()
# md5_obj.update("hello,world".encode("utf-8"))
# ret = md5_obj.hexdigest()
# print(ret) # md5_obj = hashlib.md5()
判断视频文件的一致性
# import os,hashlib
# def get_file_md5(file_path,buffer= 1024):
# md5_obj = hashlib.md5()
# file_size = os.path.getsize(file_path)
# with open(file_path,"rb") as f:
# while file_size:
# count = f.read(buffer)
# md5_obj.update(count)
# file_size -= len(count)
# return md5_obj.hexdigest()
使用md5与 sha n系列用法一样,使用sha n 越大越安全
最新文章
- '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp error
- caffe-mnist别手写数字
- PHP中$_SERVER的详细参数与说明
- C#设计模式——桥接模式(Bridge Pattern)
- angular 指令——时钟范例
- skyline TerraExplorer fly设置相对路径的方法
- leetcode 组合题
- HDU-1716 排列2 (DFS)
- oracle 分组后取每组第一条数据
- hdu--1013--Digital Roots(字符串)
- POJ 1410 Intersection (线段和矩形相交)
- linux 一键安装lnmp环境
- HttpClient设置连接超时时间
- linux 命令之netstat
- Vue之vue自动化工具快速搭建单页项目目录
- vue写后台管理系统问题概述和解决方案
- 微信小程序的json遍历
- ip辅助和别名的区别
- 设置WebApi里面命名空间参数
- 对HTTP和TCP的理解
热门文章
- requests库session保持持久会话
- P1015 [NOIP1999 普及组] 回文数
- k8s笔记--驱逐与重调度,以及deschueduler的一次实验
- 02网络编程( socket套接字+TCP粘包 )
- Back to Basics: RAII and The Rule of Zero
- 如何删除远端已经推送的Commit记录???(Git版本回退)
- [旧][Android] LayoutInflater 工作流程
- SRv6规模部署,离不开测试技术保驾护航!
- .大内高手专栏: NET中间语言(IL)
- 在不受支持的 Mac 上安装 macOS Monterey 12(OpenCore Patcher)