编写一个密码生成工具,这里我们使用弱密码与个性化数组组合形成一个定制字典,例如收集用户的姓名,昵称,QQ号手机号等资源,然后通过Python对搜集到的数据与弱密码进行结合,从而定制出属于某个人的专属密码集,从而提高破解的成功率,一般而言使用Python可以很容易的生成专属字典。

这段弱密码生成代码如下所示:

import os,sys
from random import randint,sample
import argparsedef Open_File(file):with open(file,"r",encoding="utf-8") as fp:for item in fp.readlines():data = "".join(item.split("\n"))yield data# 调用: OrderDict("template.log","pass.log",world,flag)
def OrderDict(template,outfile,world,flag):Count = 0fp = open(outfile,"a+",encoding="utf-8")if len(flag) <= 0:for item in Open_File(template):for w in world:fp.write(w + item + "\n")fp.write(item + w + "\n")Count = Count + 2else:for item in Open_File(template):for w in world:for f in flag:fp.write(item + w + f + "\n")fp.write(item + f + w + "\n")fp.write(w + item + f + "\n")fp.write(w + f + item + "\n")fp.write(f + item + w + "\n")fp.write(f + w + item + "\n")Count = Count + 6fp.close()print("[+] 总共生成弱密码条数: {}".format(Count))# 调用: RandomDict("pass.log",world,flag)
def RandomDict(outfile,world,flag):Count = 0fp = open(outfile,"a+",encoding="utf-8")if len(flag) <= 0:for item in range(1,1000):random = sample(world, 2)fp.write(random[0]+random[1] + "\n")Count = Count + 1else:for item in range(1,1000):random = sample(world, 2)for f in flag:fp.write(random[0] + random[1] + f + "\n")fp.write(f + random[0] + random[1] + "\n")fp.write(random[0] + f + random[1] + "\n")Count = Count + 3fp.close()print("[+] 总共生成随机密码条数: {}".format(Count))def Banner():print("  _          ____  _                _    ")print(" | |   _   _/ ___|| |__   __ _ _ __| | __")print(" | |  | | | \___ \| '_ \ / _` | '__| |/ /")print(" | |__| |_| |___) | | | | (_| | |  |   < ")print(" |_____\__, |____/|_| |_|\__,_|_|  |_|\_\\")print("       |___/                             \n")print("E-Mail: me@lyshark.com")if __name__== "__main__":#关键字: world = ["wang","lyshark","1997","qew","1104"]#标志: flag = ["@","!","#"]Banner()parser = argparse.ArgumentParser()parser.add_argument("-t","--template",dest="template",help="指定一个基础模板字典.")parser.add_argument("-k","--keyword",dest="keyword",help="指定一些关键字,用逗号分隔.")parser.add_argument("-s","--symbol",dest="symbol",help="指定一些特殊符号,用逗号分隔.")parser.add_argument("-o","--outfile",dest="outfile",help="指定输出字典的名字.")args = parser.parse_args()if args.template and args.keyword and args.outfile:world = [item for item in args.keyword.split(",")]if args.symbol == None:# 使用方式: main.py -t template.log -k lyshark,wang,19981211 -o pass.logflag = []OrderDict(args.template,args.outfile,world,flag)else:# 使用方式: main.py -t template.log -k lyshark,wang,19981211 -s !,@,#,$ -o pass.logflag = [item for item in args.symbol.split(",")]OrderDict(args.template,args.outfile,world,flag)else:parser.print_help()

使用方法: -t指定模板字典,-k指定关键字序列,以逗号分隔开-s指定一些特殊符号可以不写-o指定输出后的文件名。

  • 不指定特殊字符: main.py -t temp.log -k lyshark,wang,abc,zhangsan -o pass.log
  • 指定特殊字符: main.py -t temp.log -k lyshark,wang,19981211 -s !,@,#,$ -o pass.log

Python 实现专属字典生成器相关推荐

  1. 【脚本项目源码】Python制作艺术签名生成器,打造专属你的个人艺术签名

    前言 本文给大家分享的是如何通过利用Python制作艺术签名生成器,废话不多直接开整~ 开发工具 Python版本: 3.6 相关模块: requests模块 PIL模块 PyQt5模块 环境搭建 安 ...

  2. Python之迭代器和生成器(Day17)

    一.可迭代对象(iterable) 刚才说过,很多容器都是可迭代对象,此外还有更多的对象同样也是可迭代对象,比如处于打开状态的files,sockets等等.但凡是可以返回一个迭代器的对象都可称之为可 ...

  3. Python装饰器、生成器、内置函数、Json-Day05

    装饰器 装饰器本质上就是一个python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理 ...

  4. python定义一个字典、存储雇员号和姓名_【一点资讯】python后端开发工程师考证试题...

    python开发工程师考证试题 选择题 题目 关于 Python 程序格式框架的描述,以下选项中错误的是 ( A ) A: Python 语言不采用严格的"缩进"来表明程序的格式框 ...

  5. python之迭代器,生成器

    一,迭代器 1.1什么是可迭代对象? 字符串.列表.元组.字典.集合都可以被for循环,说明他们都是可迭代的. 我们怎么来证明这一点呢? from collections import Iterabl ...

  6. Spring Boot框架敏感信息泄露的完整介绍与SRC实战(附专属字典与PoC)

    转载于:https://www.freebuf.com/vuls/289710.html #前言 ##Spring Boot框架介绍 Spring框架功能很强大,但是就算是一个很简单的项目,我们也要配 ...

  7. Python学习笔记:生成器(Generator)

    Python学习笔记:生成器(Generator) 拥有迭代序列的一致方式,比如列表里的对象或文件里的行,是Python的一项重要特性.这是通过迭代器协议的方式来完成的,一种生成可迭代对象的通用方式. ...

  8. python爆破端口_挑战全网多线程批量扫描爆破弱办事端口工具,Python制造专属!...

    挑战全网多线程批量扫描&爆破弱办事端口工具,Python制造专属!-1.jpg (29.47 KB, 下载次数: 0) 2018-8-16 17:05 上传 前言 你学习Python的目的是什 ...

  9. SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理

    SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理 本文连接 简介 SIGIA_4P 网址 a. 课程OKR Objectives and ...

最新文章

  1. Win7封装无损廋身清单
  2. PCB多层线路板打样难点
  3. GideView 动态列模板
  4. Linux下安装并破解StarUML
  5. 目前微型计算机的内存储量一般是多大的,微型计算机内存容量的大小一般是指什么而言...
  6. VS20“.NET研究”10自定义新建文件模版
  7. Android开发笔记(二十)顶部导航栏ActionBar
  8. VB谨慎使用IsMissing函数
  9. 5分钟商学院学习笔记
  10. WiFi万能钥匙+小米手机拿到coffee店WiFi密码
  11. 站斧浏览器——用实力,说实话
  12. git上传代码到指定分支
  13. altera fpga 型号说明_ALTERA的FPGA命名规则(转载)
  14. iOS开发中MD5加密算法的实现
  15. 德国光量子计算机,新型量子光源:为光学量子计算机铺路!
  16. 一些Linq方法,come on !!
  17. 经济学原理-曼昆 学习笔记一
  18. linux 常见命令 ,实用才是硬道理.
  19. codevs——2750 心系南方灾区
  20. Android常用文件夹

热门文章

  1. react demo:人员表实现笔记
  2. 大型企业IT基础架构和应用运维体系
  3. QT遍历文件夹下的所有文件
  4. IDEA中Maven创建webapp项目时不能自动生成src、webapp目录解决【手动添加】
  5. Linux命令之格式化输出printf
  6. 京东11.11:京麦服务市场交易平台备战实践
  7. 数字图像处理与python实现 pdf_数字图像处理与Python实现
  8. Spring Boot一次关于本地图片无法访问的怪异事件
  9. 徐现祥教授团队-IRE-公开数据:官员交流、方言指数等
  10. VTK7.1.1+vs2017 安装+环境配置