day5_python之hashlib模块
用来校验文本内容
hash:一种算法 ,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法
三个特点:
1.内容相同则hash运算结果相同,内容稍微改变则hash值则变
2.不可逆推
3.相同算法:无论校验多长的数据,得到的哈希值长度固定。
字符串的校验_md5
import hashlib m = hashlib.md5() # 使用MD5方法,拿到一个对象m
m.update('hello'.encode('utf-8')) # md5能够校验的只能是bytes类型
m.update('world'.encode('utf-8'))
print(m.hexdigest()) # fc5e038d38a57032085441e7fe7010b0 m = hashlib.md5()
m.update('helloworld'.encode('utf-8')) # md5能够校验的只能是bytes类型
print(m.hexdigest()) # fc5e038d38a57032085441e7fe7010b0 m = hashlib.md5('helloworld'.encode('utf-8'))
print(m.hexdigest()) # fc5e038d38a57032085441e7fe7010b0
针对文件的校验_md5
m = hashlib.md5()
with open('a.xml','rb') as f:
for line in f:
m.update(line) print(m.hexdigest())#a013451de747ddb0260b068f55df4807 ###下面的方法耗费内存,用上面的较好
m = hashlib.md5()
with open('a.xml','rb') as f:
m.update(f.read()) print(m.hexdigest())#a013451de747ddb0260b068f55df4807
hashlib.sha3_512() #比MD5更复杂,跟MD5的使用方法是一样的, 只是调用的时候用sha3_512
给文件加盐
password = 'xiechao0621'
m = hashlib.md5('yihangbailushangqingtai'.encode('utf-8'))#防止撞库破解
m.update(password.encode('utf-8'))
password_md5 = m.hexdigest() #通过MD5加密,拿到一个密文的password
print(password_md5)
hmac 模块
import hmac h = hmac.new('hello'.encode('utf-8'))
h.update('world'.encode('utf-8'))
print(h.hexdigest())#0e2564b7e100f034341ea477c23f283b h.update('hell'.encode('utf-8'))
h.update('oworld'.encode('utf-8'))
print(h.hexdigest())#57d59f3af3ec911f5afec9b5dc3829ce h = hmac.new('hello'.encode('utf-8'))
h.update('w'.encode('utf-8'))
h.update('or'.encode('utf-8'))
h.update('ld'.encode('utf-8'))
print(h.hexdigest())#0e2564b7e100f034341ea477c23f283b 拼接的使用方法,与第一种保持一样
import hashlib
passwds=[
'alex3714',
'alex1313',
'alex94139413',
'alex123456',
'123456alex',
'a123lex',
]
def make_passwd_dic(passwds):
dic={}
for passwd in passwds:
m=hashlib.md5()
m.update(passwd.encode('utf-8'))
dic[passwd]=m.hexdigest()
return dic def break_code(cryptograph,passwd_dic):
for k,v in passwd_dic.items():
if v == cryptograph:
print('密码是===>\033[46m%s\033[0m' %k) cryptograph='aee949757a2e698417463d47acac93df'
break_code(cryptograph,make_passwd_dic(passwds)) 模拟撞库破解密码
模拟撞库破解密码
day5_python之hashlib模块的更多相关文章
- 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函 ...
- 19 python初学(os 模块,sys 模块,hashlib 模块)
os 模块: # _author: lily # _date: 2019/1/13 import os print(os.getcwd()) # 得到当前的工作目录 # print(os.chdir( ...
随机推荐
- 安装 TortoiseSVN 时提示 please install the universal crt first
win7x64 解决办法 去https://www.microsoft.com/zh-cn/搜索 universal crt (hotfix kb2999226)点击下图链接 也就是https://s ...
- Vue. 之 Element table 单元格内容隐藏
Vue. 之 Element table 单元格内容隐藏 在table显示数据时,若某个单元格的内容过多,需要进行隐层,在这一列的单元格属性添加::show-overflow-tooltip=&quo ...
- Nginx 日志切割后无法记日志
日志切割会向Nginx Pid发送一个信号重新打开日志文件,如果nginx.conf没有配置PID,切割日志后找不到PID文件,就会出问题
- 未加星标 ajax三级联动的实现方法
<div id="sanji"></div> 下面考虑的是要有省市区这三列,这三列用的是下拉列表,那么里面要用<option></opti ...
- POJ3697
/* Memory Time 7096K 2641MS */ #include <iostream> #include <string> using namespace std ...
- small标签
<small> 标签将旁注 (side comments) 呈现为小型文本. 免责声明.注意事项.法律限制或版权声明的特征通常都是小型文本.小型文本有时也用于新闻来源.许可要求. 对于由 ...
- 自己动手写js分享插件 [支持https] (QQ空间,微信,新浪微博。。。)
转载:https://blog.csdn.net/libin_1/article/details/52424340 废话不多说,传送门:http://download.csdn.net/detail/ ...
- 删除重复节点 Remove Duplicates from Sorted List
Given a sorted linked list, delete all duplicates such that each element appear only once. For examp ...
- Docker数据管理-数据卷 data volumes和数据卷容器data volumes containers的使用详解
此文来源于:https://yq.aliyun.com/ziliao/43471 参考原文件之外,做了些修改. Volume数据卷是Docker的一个重要概念.数据卷是可供一个或多个容器使用的特殊目录 ...
- 纯CSS3实现Metro Icon
在线演示 本地下载