hashlib
登录认证
加密 --> 解密
摘要算法
两个字符串 :
import hashlib # 提供摘要算法的模块
md5 = hashlib.md5()
md5.update(b'')
print(md5.hexdigest())
aee949757a2e698417463d47acac93df 不管算法多么不同,摘要的功能始终不变
对于相同的字符串使用同一个算法进行摘要,得到的值总是不变的
使用不同算法对相同的字符串进行摘要,得到的值应该不同
不管使用什么算法,hashlib的方式永远不变 import hashlib # 提供摘要算法的模块
sha = hashlib.md5()
sha.update(b'alex3714')
print(sha.hexdigest()) sha 算法 随着 算法复杂程度的增加 我摘要的时间成本空间成本都会增加 摘要算法
密码的密文存储
文件的一致性验证
在下载的时候 检查我们下载的文件和远程服务器上的文件是否一致
两台机器上的两个文件 你想检查这两个文件是否相等 用户注册
用户 输入用户名
用户输入 密码
明文的密码进行摘要 拿到一个密文的密码
写入文件 用户的登录
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('登录成功') 1234567890
abcdefghijk
6位
md5
撞库 加盐
import hashlib # 提供摘要算法的模块
md5 = hashlib.md5(bytes('盐',encoding='utf-8'))
# md5 = hashlib.md5()
md5.update(b'')
print(md5.hexdigest()) 动态加盐
用户名 密码
使用用户名的一部分或者 直接使用整个用户名作为盐
import hashlib # 提供摘要算法的模块
md5 = hashlib.md5(bytes('盐',encoding='utf-8')+b'')
# md5 = hashlib.md5()
md5.update(b'')
print(md5.hexdigest()) import hashilib
做摘要计算的 把字节类型的内容进行摘要处理
md5 sha
md5 正常的md5算法 加盐的 动态加盐 文件的一致性校验
文件的一致性校验这里不需要加盐
import hashlib
md5 = hashlib.md5()
md5.update(b'alex')
md5.update(b'')
print(md5.hexdigest()) 作业: 对一个文件进行摘要算法,最后计算出这个文件的md5值。
hashlib的更多相关文章
- python模块(shelve,xml,configparser,hashlib,logging)
1.1shelve模块 shelve 模块比pickle模块简单,只有一个open函数,返回类似字典对象,可读可写:key必须为字符串, 而值可以是python所支持的数据类型. shelve模块主要 ...
- python标准模块(time、datetime及hashlib模块)
一.time,datetime模块 时间相关的操作 import time time.sleep(5) # ==> 停顿多少秒 print(time.time()) # ==> 返回时间戳 ...
- .NET平台开源项目速览(12)哈希算法集合类库HashLib
.NET的System.Security.Cryptography命名空间本身是提供加密服务,散列函数,对称与非对称加密算法等功能.实际上,大部分情况下已经满足了需求,而且.NET实现的都是目前国际上 ...
- hashlib 和 hmac
import hashlib hash = hashlib.md5([bytes('SALT_STRING', encoding='utf-8’)]) #SALT_STRING :加盐 hash.up ...
- hash模块 hashlib 和hmac
hashlib模块 用于加密相关的操作,代替md5模块和sha模块,主要提供SHA1,SHA224,SSHA256,SHA384,SHA512,MD5算法 直接看代码案例: ---------md5- ...
- python学习道路(day6note)(time &datetime,random,shutil,shelve,xml处理,configparser,hashlib,logging模块,re正则表达式)
1.tiim模块,因为方法较多我就写在code里面了,后面有注释 #!/usr/bin/env python #_*_coding:utf-8_*_ print("time".ce ...
- Python模块:hashlib
hashlib:提供了常见的摘要算法,如MD5,SHA1等. import hashlib m = hashlib.md5() m.update('how to use md5 in python h ...
- python hashlib模块
用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 import hashlib m=hash ...
- hashlib加密操作模块
import hashlib#加密操作obj=hashlib.md5(bytes("hasdfghjklcxz",encoding="utf-8"))#加密操作 ...
- Python(文件、文件夹压缩处理模块,shelve持久化模块,xml处理模块、ConfigParser文档配置模块、hashlib加密模块,subprocess系统交互模块 log模块)
OS模块 提供对操作系统进行调用的接口 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目 ...
随机推荐
- svn与git操作对比 (未来有空做一个 svn与git实战对比 )
svn是集中式的,git是分布式的,但是我们日常使用的都是按照集中式唯一服务器仓库的方式来去做的,最终我们的代码都要提交到一个唯一仓库中. 他们最大的区别是本地工作拷贝的工作方式不同, 一.svn本地 ...
- SQL SERVER 2005 数据库置疑修复
alter database 置疑数据库 set emergency go alter database 置疑数据库 set single_user with rollback immediate g ...
- JAVA在Windows使用apache commons-csv导出CSV解决方案
一.添加依赖到pom.xml <!-- https://mvnrepository.com/artifact/commons-io/commons-io --> <dependenc ...
- 使用JavaCV播放视频、摄像头、人脸识别
一.导入Maven依赖包 <dependencies> <!-- https://mvnrepository.com/artifact/org.bytedeco/javacv-pla ...
- C# Chart使用总结 2 ----属性
默认显示如图所示,Series的名称显示在右边,它会将下方空间挤掉,使图表只能显示在左侧,而右侧大部分地方都是空白的.当图很宽的时候看着会很不舒服. 可以设置Legends 集合中的Docking ...
- spring事务心得积累
一.使用事务 1.spring配置文件里开启事务注解机制 <!-- 开启事务注解机制 --> <bean id="transactionManager" clas ...
- 【C#】详解C#序列化
目录结构: contents structure [+] 简介 控制序列化和反序列化 特性(OnSerializing.OnSerialized.OnDeserializing.OnDeseriali ...
- arcgismanager登陆信息不对
arcgis版本:arcgis10 安装arcgis server后(java版的win764位系统),发现arcgis管理器登陆界面(http://localhost:8099/arcgismana ...
- Centos7安装SVN服务器
1.关闭防火墙systemctl stop firewalld.service 2.安装svn服务器yum install subversion 3.创建放置项目project的地方mkdir /sv ...
- Spring开发工具Spring Tools Suite(STS)
The Spring Tool Suite is an Eclipse-based development environment that is customized for developing ...