day30 hashlib模块
hashlib 提供摘要算法
最常见的就是MD5,当然一般来说MD5已经被足够了
不管算法多不一样,但是摘要的功能是不变的
对于相同的字符串进行摘要,使用同一个算法得到的值总是不变的
不同算法的话,会无法一致而不通过
算法的复杂程度越高越安全,但是时间空间成本也会更高
import hashlib
md5 = hashlib.md5()
md5.update(b'yangtuo')
print(md5.hexdigest())
# 2da474673e951b9e33aeb80290eb0501
摘要算法
密码的密文存储
文件的一致性验证
下载的时候检查下载文件和远程服务器的文件是否一致
两台机器上的两个文件检查是否相等
ps:
必须是字节类型内容才能摘要处理 模拟实例:
# 模拟用户注册
# 用户输入用户名,密码
# 用户输入密码
# 明文的密码进行摘要 得到一串密文后写入文件 # 模拟用户登录
import hashlib
usr = input("username>>>")
pwd = input("password>>>")
with open("userinfo")as f :
for line in f:
user,passwd,role = line.split("|")
md5 = hashlib.md5()
md5.update(bytes(pwd,encoding="utf-8"))
md5_pwd = md5.hexdigest()
if usr == user and md5_pwd == passwd:
print("login in ")
else:print("go out") # 加盐
#
import hashlib
md5 = hashlib.md5(bytes("salt",encoding="utf-8"))
md5.update(b'alex3714')
print(md5.hexdigest()) # 动态加盐
# 用户名 密码
# 使用用户名的一部分或者直接整个用户名作为盐
import hashlib
md5 = hashlib.md5(bytes("salt",encoding="utf-8")+b"dhahdkashdawhd")
md5.update(b'alex3714')
print(md5.hexdigest()) # 文件的一致性校验
# 别加盐,别人才不知道你加了什么盐,而且仅仅是判断是否一致,又不是什么高级机密
# 文件比较长的时候,可以分次进行update,一次
import hashlib
md5 = hashlib.md5()
md5.update(b'alex')
md5.update(b'')
print(md5.hexdigest())
day30 hashlib模块的更多相关文章
- python hashlib模块 logging模块 subprocess模块
一 hashlib模块 import hashlib md5=hashlib.md5() #可以传参,加盐处理 print(md5) md5.update(b'alex') #update参数必须是b ...
- python标准模块(time、datetime及hashlib模块)
一.time,datetime模块 时间相关的操作 import time time.sleep(5) # ==> 停顿多少秒 print(time.time()) # ==> 返回时间戳 ...
- Python hashlib模块 (主要记录md5加密)
python提供了一个进行hash加密的模块:hashlib 下面主要记录下其中的md5加密方式(sha1加密一样把MD5换成sha1) >>> import hashlib > ...
- Python学习笔记——基础篇【第六周】——hashlib模块
常用模块之hashlib模块 用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 import ...
- Python之数据加密与解密及相关操作(hashlib模块、hmac模块、random模块、base64模块、pycrypto模块)
本文内容 数据加密概述 Python中实现数据加密的模块简介 hashlib与hmac模块介绍 random与secrets模块介绍 base64模块介绍 pycrypto模块介绍 总结 参考文档 提 ...
- 小白的Python之路 day5 hashlib模块
hashlib模块 一.概述 用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 二.算法的演 ...
- Python模块之hashlib模块、logging模块
一.hashlib模块 hashlib模块介绍:hashlib这个模块提供了摘要算法,例如 MD5.hsa1 摘要算法又称为哈希算法,它是通过一个函数,把任意长度的数据转换为一个长度固定的数据串,这个 ...
- python全栈开发-hashlib模块(数据加密)、suprocess模块、xml模块
一.hashlib模块 1.什么叫hash:hash是一种算法(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 ...
- Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函数 os模块 hashlib模块 platform模块 csv模块
Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函 ...
随机推荐
- mysql分表操作
一般分表操作有垂直拆分和水平拆分.顾名思义. 1. 垂直拆分是指,这个表的列,即字段,要拆分成两个或多个表. 这个应用场景比如:这个表字段,几个都是int.datetime等,有那么一个是text类 ...
- BootStrap学习(4)_分页&标签&缩略图&警告&进度条
一.分页 分页(Pagination),是一种无序列表,Bootstrap 像处理其他界面元素一样处理分页. .pagination --添加该 class 来在页面上显示分页. .disa ...
- [数据可视化之一]Pandas单变量画图
Pandas单变量画图 Bar Chat Line Chart Area Chart Histogram df.plot.bar() df.plot.line() df.plot.area() df. ...
- TDD、BDD、ATDD、DDD 软件开发模式
TDD.BDD.ATDD.DDD 软件开发模式 四个开发模式意思: TDD:测试驱动开发(Test-Driven Development) BDD:行为驱动开发(Behavior Driven Dev ...
- Nginx挂载维护页或返回自定义响应信息
在服务停机升级或者服务暂不可用时,往往希望能够返回给用户更为明确和友好的响应信息.可以通过修改nginx配置文件,达到返回自定义信息的效果.有如下几种配置方式: (1)Nginx接收到的所有请求,都返 ...
- 这里已不再更新,访问新博客请移步 http://www.douruixin.com
这里已不再更新,访问新博客请移步 http://www.douruixin.com
- Being a (amateurish) team:团队开发体会
0x00 Being a (amateurish) team This is the process of changing hydrogen into breathable oxygen, and ...
- 《Linux内核分析》第七周笔记 可执行程序的装载
20135132陈雨鑫 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ...
- 读书笔记(chapter17)
设备类型:在所有Unix系统中为了统一普通设备的操作所采用的分类 模块:Linux内核中用于按需加载和卸载目标码的机制 内核对象:内核数据结构中支持面对对象的简单操作,还支持维护对象之间的父子关系 1 ...
- Proxy 示例
package cn.proxy03; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; imp ...