使用exrex第三方模块,制作私人订制的高精度密码字典,保存至txt

使用了exrex第三方模块(产生自定义字典)。github.com/asciimoo/exrex

使用了sys.argv功能,在cmd下执行py脚本 手工传入需要定制的网站域名,如http://study.google.com

使用了,自己创建的rule.ini配置文件,后期制作字典,只需要更改配置文件的配置规则即可。

可以自定义生成密码的位数,如大于等于8位,保存至本地txt。

#!/usr/bin/env python
# -*- coding: utf-8 -*-import exrex
import sys'''
高精度字典生成器:
传入一个host地址,例如demo.webdic.com,那么demo和webdic都可以作为有用的东西,成为生成字典的一部分
所以我们要过滤掉.com的信息 注入此类,建立一个web_white列表,过滤掉没用的。
'''web_white = ['com', 'cn', 'gov', 'edu', 'org', 'www']#拆分域名的方法,将http://demo.webdic.com变成demo.webdic.com
def host_para(host):# 对host进行分析,处理成我们想要的格式if '://' in host:host = host.split('://')[1].replace('/', '')# print(host)if '/' in host:host = host.replace('/', '')# print(host)return host#生成字典的方法,传入域名demo.baidu.com
def dic_create(hosts):# 取出有用的东西,如domo,webdic,放入字典生成的地方,生成字典# 我们希望将核心的生成规则,写入配置文件中,方便后期使用#打开rule.ini配置文件f_rule = open('rule.ini', 'r', encoding='UTF-8')#获取到配置文件的内容,(|{web_dic})(|!|@)(|{dic_pass})(|!|@)(|201)for i in f_rule:if '#' != i[0]:rule = iprint('按如下规则进行匹配生成字典↓↓↓')print(rule)#新建保存最终字典的文件gen_new_pass_dic.txtf_pass_out = open('gen_new_pass_dic.txt', 'w')f_pass_out.close()#拆分域名demo.baidu.comweb_dics = hosts.split('.')for web_dic in web_dics:#过滤掉com,cn,gov这些后缀if web_dic not in web_white:#获取原始字典的每一行信息f_pass = open('root_pass.txt', 'r')for dic_pass in f_pass:# print(dic_pass)# exrex.generate的原始语句# dics = list(exrex.generate('{web_dic}[!@#]{dic_pass})'.format(web_dic=web_dic, dic_pass=dic_pass.strip('\n'))))#过滤掉原始字典的回车dic_pass_s=dic_pass.strip('\n')#使用exrex模块生成基于rule.ini配置文件规则的新密码列表dicsdics = list(exrex.generate(rule.format(web_dic=web_dic, dic_pass=dic_pass_s)))for dic in dics:#如果生成的心密码位数大于8位,则是我们需要的,信息追加保存至gen_new_pass_dic.txtif len(dic) > 8:f_pass_out = open('gen_new_pass_dic.txt', 'a+')f_pass_out.write(dic)f_pass_out.close()print(dic)#不启用手工传参的测试
# dic_create(host_para('http://demo.baidu.com'))if __name__ == '__main__':#cmd下运行python脚本手工传入参数(需要生成的网站域名)if len(sys.argv) == 2:dic_create(host_para(sys.argv[1]))print('字典已保存至gen_new_pass_dic.txt')sys.exit(0)else:print('Usage:%s www.demo.com' % (sys.argv[0]))sys.exit(-1)'''
exrex字典生成模块说明:
github.com/asciimoo/exrex>>> import exrex>>> exrex.getone('(ex)r\\1')
'exrex'>>> list(exrex.generate('((hai){2}|world!)'))
['haihai', 'world!']>>> exrex.getone('\d{4}-\d{4}-\d{4}-[0-9]{4}')
'3096-7886-2834-5671'>>> exrex.getone('(1[0-2]|0[1-9])(:[0-5]\d){2} (A|P)M')
'09:31:40 AM'>>> exrex.count('[01]{0,9}')
1023>>> print '\n'.join(exrex.generate('This is (a (code|cake|test)|an (apple|elf|output))\.'))
This is a code.
This is a cake.
This is a test.
This is an apple.
This is an elf.
This is an output.>>> print exrex.simplify('(ab|ac|ad)')
(a[bcd])
'''

执行结果:



创建的rule.ini配置文件:

使用exrex第三方模块,制作私人订制的高精度密码字典,保存至txt相关推荐

  1. Python(10)--文件读写/模块制作与发布

    文件读写 文件操作一般步骤: 打开文件 读/写文件 保存文件 关闭文件 [在python中操作文件也是遵循这几个步骤的] 打开文件 在Python中打开文件使用open函数,可以打开一个已经存在的文件 ...

  2. Python——利用pygame模块制作RPG游戏(一)

    利用pygame模块制作RPG游戏(一) 需要用到的第三方库:pygame 一.构造游戏的基本框架 1.首先准备好相应的游戏素材:背景,人物动作图片,音乐,音效等. 图片均用png格式,音乐音效均用o ...

  3. 24v转5v电源芯片模块,220v转5v隔离芯片模块,220v转5v电源芯片模块,制作220v转5v电源芯片,模块原理图220v转5v变压器芯片,20w220v转5v电源芯片

    220V转5V模块供电IC,220V转5VMCU供电IC,220V转5V,非隔离电源方案,220V转5V小体积应用方案,低成本220V转5V方案,220V转5VMCU模块供电,220v转12v电源模块 ...

  4. 品优购项目学习记录--01公共模块制作

    文章目录 一.品优购项目规划 1.1 开发工具以及技术栈 1.1.1 开发工具 1.1.2 技术栈 1.2 品优购项目搭建工作 1.2.1 相关文件夹以及文件创建 1.2.2 模块化开发 1.2.3 ...

  5. 在CentOS 6.9 x86_64的nginx 1.12.2上安装第三方模块set-misc-nginx-module实录

    set-misc-nginx-module模块是标准的HttpRewriteModule指令的扩展,提供更多的功能,如URI转义与非转义.JSON引述.Hexadecimal/MD5/SHA1/Bas ...

  6. 有趣的Pycharm第三方模块——为正在学习python的可怜孩子找点乐趣

    1.模块一之利用python控制微信 <1>首先,你必须安装Python以及Pycharm,然后让你的主机联网 <2>既然是第三方模块,那我们就要安装后才可在程序中导入 [Ct ...

  7. 31、如何安装第三方模块?以及用过哪些第三方模块?

    在Python中,安装第三方模块,是通过setuptools这个工具完成的.Python有两个封装了setuptools的包管理工具:easy_install和pip.目前官方推荐使用pip 如果你正 ...

  8. SAE上安装第三方模块

    当sae上没有自己所需要的第三方模块时,可以使用saecloud install package [package...]将所需要的模块安装到本地应用文件夹下,然后在index.wsgi下添加如何代码 ...

  9. nginx安装第三方模块echo

    要使用第三方模块ngx_echo的功能,请重新配置添加到nginx插件中 ##下载第三方模块 wget https://github.com/openresty/echo-nginx-module/a ...

  10. python常用内置模块-Python内置模块和第三方模块

    Python的强大之处在于他有非常丰富和强大的标准库和第三方库(模块),几乎你想实现的任何功能都有相应的Python库支持,就类似于C#中的类库亦或JAVA的jar包,前端中的JS库. 使用模块有什么 ...

最新文章

  1. CentOS6.8 编译安装LNMP
  2. 赛迪研究院发布《2019量子计算发展白皮书》
  3. mysql5.7版本源_用最新MySQL 8.0的源安裝MySQL 5.7版本(CentOS 7環境下)
  4. golang中的Mock依赖
  5. JNI与底层调用-1
  6. python中的property
  7. 收藏 | 小目标检测的一些问题,思路和方案
  8. spring使用@Value注解读取.properties文件时出现中文乱码问题的解决
  9. LINUX虚拟机安装增强功能时报错: Kernel headers not found for target kernel. Please install them and execute
  10. 华南理工大学811信号与系统真题
  11. Python 根据出生日期判断星座
  12. guzzle php,PHP HTTP 客户端 - Guzzle
  13. 度数换算_视力表、近视度数换算方法(实用珍藏版)
  14. SEO原创和伪原创文章的一些技巧
  15. 【UVM基础】虚序列器与虚序列(virtual sequencer与virtual sequence)快速上手指南
  16. 荒野行动为什么不能获取服务器信息,荒野行动卡在获取服务器信息上了怎么办?(附解决方法)...
  17. 原生JS获取单选框或复选框的选中值的方法
  18. Android系统的心脏-Zygote进程启动流程分析
  19. 解决WindTerm屏幕锁定
  20. 司空见惯 - 神奇的数字7

热门文章

  1. 基于SpringCloud Alibaba实现的论坛
  2. Mybatis原生dao开发方法实现增删改查
  3. 车内看车头正不正技巧_交规理论最全技巧口诀,学会后100%过关!
  4. Linux下更改Python的软链接
  5. 计算机二级怎么让试题变简单,如何有效利用历年真题备考全国计算机等级考试?...
  6. 区间dp讲解之石子合并问题 区间dp的分析方法
  7. unity api中文手册_unity 中文API之Display
  8. 求两个等长升序序列的中位数
  9. java ssh jar_java应用程序远程登录linux并执行其命令(ssh jar包)
  10. 数据清洗+特征构造:application_{train|test}.csv