1.导入函数库

import hashlib
import itertools#迭代器
import datetime
import time

itertools:迭代器(生成器)。
datetime库以类的方式提供多种日期和时间表达方式。

2.加密数据

hashlib库提供了很多加密算法,我这里要用的是hashlib.mad5()加密算法来进行加密。

x = hashlib.md5("200112".encode(encoding="utf-8")).hexdigest()
print(x)

我加密的内容就是“200112”。

加密结果如下:

3.解密加密后的数据

我这里加密的是六位数(八位数解密时间太长了),所以解密也是关于六位数的。这里也可以把解密花费的时间运行出来。

def generatelibary(library,length=6):libararys = itertools.product(library,repeat=length)dic = open("paswordlirbarys.txt","w",encoding='utf-8')#写模式打开文件for i in libararys:dic.writelines(i)dic.writelines("\n")dic.close()
def dict_attack(path,password):#字典攻击file = open(path)for passwords in file:passwords = passwords.split("\n")[0]if password == hashlib.md5(passwords.encode(encoding="utf-8")).hexdigest():print("你的密码是:{}".format(passwords))
if __name__ == "__main__":word = "0123456789"#你加密内容中的数据必须在这里面starttime = datetime.datetime.now()#获取当前时间print(time.strftime("%Y%m%d%H%M%S", time.localtime(time.time())))generatelibary(word,length=6)dict_attack("paswordlirbarys.txt","8655f16996c8058e1272ee7741114462")endtime = datetime.datetime.now()print(time.strftime("%Y%m%d%H%M%S", time.localtime(time.time())))print('The time cost: ')print(endtime - starttime)#时间

itertools.product(*iterables,[repeat]) :repeat表示这种乘积的重复次数。

运行结果如下:

这一次我了解到了itertools库,也就是迭代器(生成器),同时也了解了hashlib库中的一个加密算法hashlib.mad5()。

Python学习-字典攻击相关推荐

  1. Python实验-字典攻击!你的密码分分钟被搞定!

    # 字典攻击 import itertools # 迭代器 import datetime import hashlib import time def generatelibary(library, ...

  2. python学习-字典(哈希表、创建、插值、取值、keys、values、items、copy、fromkeys)

    字典 字典的创建 字典的使用 字典的创建 首先需要注意,字典是由键值对(key=>value)组成,成对出现的,其中key是不能改变的值,如整数,浮点数,字符串,元组等 Python的字典实现使 ...

  3. python学习 字典

    22-9-15 1.格式:大括号{} eg: 2.创建字典: 6种常用方法: 3.增: 1.formkeys: eg: 2: 用此种方法,若键值存在,则修改其value,若不存在,则新增一个键值对. ...

  4. python 学习 字典

    类似map cc = {'magic':'1','saber':'2','master':'3','archer':'4',} 添加键-值对 cc['newKey']=newValue 删除键-值对 ...

  5. python学习-知识点回顾(Python3的安装,编译器、一些关键知识点、数据类型、数据类型转换、运算符优先级)

    文章目录 说明 python特点 Python3下载 PyCharm 标识符 python保留字 行与缩进 基本数据类型 Python数据类型转换 Python运算符优先级 说明 首先说明:本篇博文知 ...

  6. Python学习 - 面向对象之多态

    Python学习 - 语法入门:https://blog.csdn.net/wanzijy/article/details/125287855 Python学习 - 数据类型:https://blog ...

  7. Python学习系列(五)(文件操作及其字典)

    Python学习系列(五)(文件操作及其字典) Python学习系列(四)(列表及其函数) 一.文件操作 1,读文件      在以'r'读模式打开文件以后可以调用read函数一次性将文件内容全部读出 ...

  8. python中字典和集合的区别_Python中字典和集合学习小结

    映射类型: 表示一个任意对象的集合,且可以通过另一个几乎是任意键值的集合进行索引 与序列不同,映射是无序的,通过键进行索引 任何不可变对象都可用作字典的键,如字符串.数字.元组等 包含可变对象的列表. ...

  9. Python学习教程实用技法:通过公共键对字典列表排序—itemgetter

    Python学习教程实用技法:通过公共键对字典列表排序-itemgetter 前言:我们有一个字典列表,想根据一个或多个字典中的值对列表进行排序. 利用operator模块中的itemgetter函数 ...

最新文章

  1. 可以永久改变你的编程技巧的40个Tips
  2. 算法时间复杂度和空间复杂度表示
  3. OpenFeign组件的使用(使用nacos作为服务注册中心)
  4. 放大电路分析方法、图解法分析放大电路
  5. 2018星际AI大赛冠军诞生!一个个机器学习算法,都输给不会学习的韩国bot
  6. 【九】注入框架RoboGuice使用:(Your First Injected Service and BroadcastReceiver)
  7. Mac上Jupyter之notebook快捷键
  8. graphpad prism8教程柱状图_Graphpad Prism 8作图教程(4):散点图
  9. 眼镜店计算机信息管理情况介绍,眼镜店家,你了解消费者吗?——M市眼镜市场调查报告...
  10. 数学基础知识总结 —— 12. 求极限的重要工具「洛必达法则」
  11. 编程入门——计算机硬件介绍
  12. 人才测评技术与应用【1】
  13. 弹性力学,塑性力学,流变学,连续介质力学,断裂力学,流体力学基本定义及关系
  14. MTK平台Camera图片的Exif信息
  15. img标签图片自适应的样式
  16. android 图片处理过程中添加进度条,[Android] 随时拍图像处理部分总结及源码分......
  17. c++实现strstr函数
  18. 英语阅读到现在还错一大片怎么办?
  19. 蚂蚁金服 g6 用法
  20. 【Git】git push -u origin master 的含义和 -u 的含义

热门文章

  1. Boundary Loss 原理与代码解析
  2. ps -mp pid -o THREAD,tid,time;printf %x\n tid;jstack pid |grep tid -A 30;CPU占用太高追查
  3. 基于opencv实现:以Harris角点作为种子点的区域生长
  4. Python浪漫520表白代码
  5. 华为交换机常见的ACL操作
  6. 哈佛商业评论: 从商战到反恐,如何建立指挥系统内外的“网络”
  7. 信息碎片化爆炸时代,我们究竟失去的是什么?
  8. Vmware设置网络设置
  9. JAVA开发与运维(Nginx配置详解)
  10. Android第三方开源对话消息提示框:SweetAlertDialog(sweet-alert-dialog)