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())

最新文章

  1. (转)从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)
  2. truncate 、delete与drop区别
  3. [转载] 不查资料确定int型整数的最大值和最小值
  4. 北大poj- 1028
  5. BZOJ 1051 & 强联通分量
  6. [ACM_动态规划] POJ 1050 To the Max ( 动态规划 二维 最大连续和 最大子矩阵)
  7. FPGA的SPI从机模块实现
  8. 2016年团体程序设计天梯赛-决赛 L1-6. 一帮一(15)
  9. swift button一些简单设置
  10. AI应用开发实战 - 手写识别应用入门
  11. mybatis的where和if标签配合使用
  12. 入门SQL操作
  13. jsp相关笔记(三)
  14. rpgmakermv(10) GraphicalDesignMode
  15. Android ADT 工具下载地址
  16. vim常用命令之多行注释和多行删除
  17. 用node编写cli工具
  18. js replace,正则截取字符串内容
  19. 【BZOJ3309】DZY Loves Math 解题报告
  20. windows下jenkins安装过程中的那些坑

热门文章

  1. 生成mysql数据字典
  2. Http响应response(文件下载、验证码)
  3. GBRT(GBDT)(MART)(Tree Net)(Tree link)
  4. malloc: *** error for object 0x10a291df8: pointer being freed was not allocated *** set a breakpoint in malloc_error_break to debug
  5. List.Sort 排序用法收集
  6. Directx11教程(43) 纹理映射(13)-动态纹理映射
  7. 闲鱼Flutter&FaaS云端一体化架构
  8. 每天一个linux命令(1): which命令
  9. Vim学习与总结
  10. zabbix源码编译安装以及添加第一台host监控