Python hashlib模块与subprocess模块使用详细介绍
作者:Python热爱者 发布时间:2021-09-25 18:06:47
标签:Python,hashlib,subprocess,模块
1、什么是哈希hash
hash一类算法,该算法接受传入的内容,经过运算得到一串hash值
hash值的特点:
只要传入的内容一样,得到的hash值必然一样
不能由hash值返解成内容
不管传入的内容有多大,只要使用的hash算法不变,得到的hash值长度是一定
2、hash的用途
用途1:特点II用于密码密文传输与验证
用途2:特点I、III用于文件完整性校验
3、如何用
import hashlib
m=hashlib.md5()
m.update('hello'.encode('utf-8'))
m.update('world'.encode('utf-8'))
res=m.hexdigest() # 'helloworld'
print(res)
m1=hashlib.md5('he'.encode('utf-8'))
m1.update('llo'.encode('utf-8'))
m1.update('w'.encode('utf-8'))
m1.update('orld'.encode('utf-8'))
res=m1.hexdigest()# 'helloworld'
print(res)
模拟撞库
cryptograph='aee949757a2e698417463d47acac93df'
import hashlib
# 制作密码字段
passwds=[
'alex3714',
'alex1313',
'alex94139413',
'alex123456',
'123456alex',
'a123lex',
]
dic={}
for p in passwds:
res=hashlib.md5(p.encode('utf-8'))
dic[p]=res.hexdigest()
# 模拟撞库得到密码
for k,v in dic.items():
if v == cryptograph:
print('撞库成功,明文密码是:%s' %k)
break
提升撞库的成本=>密码加盐
import hashlib
m=hashlib.md5()
m.update('天王'.encode('utf-8'))
m.update('alex3714'.encode('utf-8'))
m.update('盖地虎'.encode('utf-8'))
print(m.hexdigest())
4、subprocess模块
subprocess使用当前系统默认编码,得到结果为bytes类型,在windows下需要用gbk解码
import subprocess
obj=subprocess.Popen('echo 123 ; ls / ; ls /root',shell=True,
stdout=subprocess.PIPE, #正确的管道
stderr=subprocess.PIPE,#错误的管道
)
# print(obj)
# res=obj.stdout.read()
# print(res.decode('utf-8'))
err_res=obj.stderr.read()
print(err_res.decode('gbk')) # windows下需要用gbk解码mac、linux用utf-8解码
来源:https://blog.csdn.net/qdPython/article/details/127013075


猜你喜欢
- 1 基本场景比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上
- 本章来实现一下删除已上传文件,同时优化了一下第一章中的代码。废话少说,上代码得意1.调整列表页面list.jsp<%@ page co
- 多进程共享变量和获得结果由于工程需求,要使用多线程来跑一个程序。但是因为听说python的多线程是假的,于是使用多进程,反正任务需要共享的参
- 用python进行线性回归分析非常方便,有现成的库可以使用比如:numpy.linalog.lstsq例子、scipy.stat
- 本文实例讲述了Go语言的队列和堆栈实现方法。分享给大家供大家参考。具体如下:golang,其实我的实现是利用container/list包实
- 1、Windows上anaconda安装配置mmdetection环境稍后再写2、将anaconda环境离线移植到另一台电脑首先将anaco
- 如何在SQL中启用全文检索功能?本文将通过实例向你剖折这个问题。这是一个全文索引的一个例子,首先在查询分析器中使用:use pubsgo--
- 前言mysql是高版本,当执行group by时,select的字段不属于group by的字段的话,sql语句就会报错。错误提示:this
- 本文实例讲述了Python iter()函数用法。分享给大家供大家参考,具体如下:python中的迭代器用起来非常灵巧,不仅可以迭代序列,也
- 模式库 在模式库里,我将列出所有电子商务网站需要的模式.以下将罗列出经典常用的模式案例,我也试图让这些模式看起来更有趣味性与实用性。(Yah
- 可以输入的下拉菜单,不错的一个效果,相信asp之家给大家收集的这个代码会有不少人需要!<html> <head> &
- 导语周末、假期来了,七夕也快到了,又到一年中最一票难求的时候了!那些假期想回家、过节异地恋的小可爱们,能准时抢到回家(约会对象)的城市票嘛?
- 本文实例讲述了wxPython主框架的简单用法,分享给大家供大家参考。具体如下:程序代码如下:import wx class MyApp(w
- 导读前面几章我们以经介绍了怎么批量对excel和ppt操作今天我们说说对word文档的批量操作应用python-docx允许您创建新文档以及
- 1.if判断1.1 if语句if 表达式:语句1语句2……1.“if&
- 在一般问题的优化中,最速下降法和共轭梯度法都是非常有用的经典方法,但最速下降法往往以”之”字形下降,速度较慢,不能很快的达到最优值,共轭梯度
- 一、python-yml文件读写使用库 :import yaml安装:pip install pyyaml示例:文件config2.ymlg
- 原理:建立一个任务队列,然多个线程都从这个任务队列中取出任务然后执行,当然任务队列要加锁,详细请看代码import threadingimp
- 1. 背景:最近写了一篇CSDN博客需要上传gif图,发现大小超过了5M,无法上传。文件大小:本想自己找个免费的压缩工具,结果下载下来的工具
- 10线程同时操作,频繁出现插入同样数据的问题。虽然在插入数据的时候使用了: insert inti tablename(fields....