python模块之hashlib模块
2024-09-03 07:06:56
hashlib模块:提供摘要算法
格式:
hashlib格式:
obj = hashlib.算法(md5,sha....)
obj.update(摘要内容:bytes类型)
result = obj.hexdigest()
具体使用的方法:
abstract = hashlib.md5()
abstract1 = hashlib.md5()
abstract2 = hashlib.sha1()
abstract.update(bytes('密文', encoding='utf-8'))
abstract1.update(bytes('密文', encoding='utf-8'))
abstract2.update(bytes('密文', encoding='utf-8'))
print(abstract.hexdigest()) # c099362aa8fc5c5d1be88e4c2c42ea62
print(abstract1.hexdigest()) # c099362aa8fc5c5d1be88e4c2c42ea62
print(abstract2.hexdigest()) # 058115813f2cbb11f638a736c22b3bd32a5e46dc
从上面的例子看出摘要算法的特点:
摘要算法特点:可用于文件的一致性验证
1,对于相同的字符串,同一种算法摘要后的值总是相同的
2,对于相同的字符串,不同的算法摘要后的值应该是不相同的
加盐摘要:进一步提高密文的安全性,防止撞库!
abstract = hashlib.md5(bytes('加盐', encoding='utf-8'))
abstract.update(bytes('密文', encoding='utf-8'))
print(abstract.hexdigest()) # 17de8554897051e741525a38fc250adf
动态加盐:使用用户名的某一部分作为加盐的对象或和盐进行拼接后加盐。
user = input('username:')
abstract = hashlib.md5(bytes(user, encoding='utf'))
abstract.update(bytes('密文', encoding='utf-8'))
print(abstract.hexdigest())
最新文章
- (转)从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)
- truncate 、delete与drop区别
- [转载] 不查资料确定int型整数的最大值和最小值
- 北大poj- 1028
- BZOJ 1051 &; 强联通分量
- [ACM_动态规划] POJ 1050 To the Max ( 动态规划 二维 最大连续和 最大子矩阵)
- FPGA的SPI从机模块实现
- 2016年团体程序设计天梯赛-决赛 L1-6. 一帮一(15)
- swift button一些简单设置
- AI应用开发实战 - 手写识别应用入门
- mybatis的where和if标签配合使用
- 入门SQL操作
- jsp相关笔记(三)
- rpgmakermv(10) GraphicalDesignMode
- Android ADT 工具下载地址
- vim常用命令之多行注释和多行删除
- 用node编写cli工具
- js replace,正则截取字符串内容
- 【BZOJ3309】DZY Loves Math 解题报告
- windows下jenkins安装过程中的那些坑
热门文章
- 生成mysql数据字典
- Http响应response(文件下载、验证码)
- GBRT(GBDT)(MART)(Tree Net)(Tree link)
- malloc: *** error for object 0x10a291df8: pointer being freed was not allocated *** set a breakpoint in malloc_error_break to debug
- List.Sort 排序用法收集
- Directx11教程(43) 纹理映射(13)-动态纹理映射
- 闲鱼Flutter&FaaS云端一体化架构
- 每天一个linux命令(1): which命令
- Vim学习与总结
- zabbix源码编译安装以及添加第一台host监控