Python 实现专属字典生成器
编写一个密码生成工具,这里我们使用弱密码与个性化数组组合形成一个定制字典,例如收集用户的姓名,昵称,QQ号手机号等资源,然后通过Python对搜集到的数据与弱密码进行结合,从而定制出属于某个人的专属密码集,从而提高破解的成功率,一般而言使用Python可以很容易的生成专属字典。
这段弱密码生成代码如下所示:
import os,sys
from random import randint,sample
import argparse
def 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 = 0
fp = 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 + 2
else:
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 + 6
fp.close()
print("[+] 总共生成弱密码条数: {}".format(Count))
# 调用: RandomDict("pass.log",world,flag)
def RandomDict(outfile,world,flag):
Count = 0
fp = 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 + 1
else:
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 + 3
fp.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.log
flag = []
OrderDict(args.template,args.outfile,world,flag)
else:
# 使用方式: main.py -t template.log -k lyshark,wang,19981211 -s !,@,#,$ -o pass.log
flag = [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 实现专属字典生成器的更多相关文章
- 基于python的密码字典生成器
最近在网上看到一些作品,然后对其进行了一些完善.只是用于学习,不要去干坏事哦.程序来源于网络,我只是做了一些优化. #!/usr/bin/python# -*- coding:utf-8 -*-# @ ...
- python写一个数字字典生成器
#数字字典生成器 by qianxiao996 #博客地址:https://blog.csdn.net/qq_36374896 #此程序输入开始结束和位数即可在程序所在目录下生成字典 #只支持数字生成 ...
- Python之迭代器,生成器
迭代器 1.什么是可迭代对象 字符串.列表.元组.字典.集合都可以被for循环,说明他们都是可迭代的. from collections import Iterable l = [1,2,3,4] t ...
- python基础—迭代器、生成器
python基础-迭代器.生成器 1 迭代器定义 迭代的意思是重复做一些事很多次,就像在循环中做的那样. 只要该对象可以实现__iter__方法,就可以进行迭代. 迭代对象调用__iter__方法会返 ...
- python之迭代器与生成器
python之迭代器与生成器 可迭代 假如现在有一个列表,有一个int类型的12345.我们循环输出. list=[1,2,3,4,5] for i in list: print(i) for i i ...
- Python装饰器、生成器、内置函数、json
这周学习了装饰器和生成器,写下博客,记录一下装饰器和生成器相关的内容. 一.装饰器 装饰器,这个器就是函数的意思,连起来,就是装饰函数,装饰器本身也是一个函数,它的作用是用来给其他函数添加新功能,比如 ...
- day13 python学习 迭代器,生成器
1.可迭代:当我们打印 print(dir([1,2])) 在出现的结果中可以看到包含 '__iter__', 这个方法,#次协议叫做可迭代协议 包含'__iter__'方法的函数就是可迭代函数 ...
- Python之迭代器及生成器
一. 迭代器 1.1 什么是可迭代对象 字符串.列表.元组.字典.集合 都可以被for循环,说明他们都是可迭代的. 我们怎么来证明这一点呢? from collections import Itera ...
- Python之迭代器和生成器(Day17)
一.可迭代对象(iterable) 刚才说过,很多容器都是可迭代对象,此外还有更多的对象同样也是可迭代对象,比如处于打开状态的files,sockets等等.但凡是可以返回一个迭代器的对象都可称之为可 ...
- python学习笔记(四):生成器、内置函数、json
一.生成器 生成器是什么?其实和list差不多,只不过list生成的时候数据已经在内存里面了,而生成器中生成的数据是当被调用时才生成呢,这样就节省了内存空间. 1. 列表生成式,在第二篇博客里面我写了 ...
随机推荐
- VMware15.5安装Ubuntu20.04
一.安装前的准备 1.下载好Ubuntu20.04的镜像文件,直接从官网下载就好,激活密匙. 2.准备好VMware软件,这里就忽略安装过程了. 二.建立虚拟机以及开启正式的Ubuntu安装过程 参考 ...
- 使用 Serverless Devs 插件快速部署前端应用
作者| 邓超 Serverless Devs 开源贡献者 背景 我们在 上文 [Aliyun] [FC] 如何使用 @serverless-devs/s 部署静态网站到函数计算 中,详细的介绍了如何通 ...
- SpringCloud学习 系列三、 创建一个没有使用springCloud的服务提供者和消费者
系列导航 SpringCloud学习 系列一. 前言-为什么要学习微服务 SpringCloud学习 系列二. 简介 SpringCloud学习 系列三. 创建一个没有使用springCloud的服务 ...
- 【调试】ftrace(二)新增跟踪点
内核的各个子系统已经有大量的跟踪点,如果这些跟踪点无法满足工作中的需求,可以自己手动添加跟踪点. 添加跟踪点有两种方式,一种是仿照events/目录下的跟踪点,使用TRACE_EVENT() 宏添加. ...
- .NET CORE实战项目之CMS 开发篇 思维导图
导图地址下载: 链接:https://pan.baidu.com/s/1sGiNZI-pc_yueqQiddvImQ 提取码:ql4v -------------------------------- ...
- 机器学习-线性分类-支持向量机SVM-合页损失-SVM输出概率值-16
目录 1. SVM概率化输出 2. 合页损失 1. SVM概率化输出 标准的SVM进行预测 输出的结果是: 是无法输出0-1之间的 正样本 发生的概率值 sigmoid-fitting 方法: 将标准 ...
- centos7 docker配置防火墙firewalld
docker防火墙使用的是底层iptables,封装后的firewalld默认不生效 如果想要使用firewalld,需要做以下调整: 让firewalld移除DOCKER-USER并新建一个 # R ...
- zookeeper源码(06)ZooKeeperServer及子类
ZooKeeperServer 实现了单机版zookeeper服务端功能,子类实现了更加丰富的分布式集群功能: ZooKeeperServer |-- QuorumZooKeeperServer |- ...
- Nacos源码 (4) 配置中心
本文阅读nacos-2.0.2的config源码,编写示例,分析推送配置.监听配置的原理. 客户端 创建NacosConfigService对象 Properties properties = new ...
- [java] - 数据库连接工具类
package util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLExceptio ...