Python实现生成密码字典的方法示例


Posted in Python onSeptember 02, 2019

本文实例讲述了Python实现生成密码字典的方法。分享给大家供大家参考,具体如下:

key_data.py 文件存放组成数据,可以随时扩充及简化。

#coding=utf-8
#!/usr/bin/python
def year():#返回字符串类型的年份列表
  year = range(1984,2018)# 常用年份列表
  year_str = []
  for y in year:
    year_str.append(str(y))
  return year_str
def month_or_day(n):#生成字符串类型的月份、日期
  mlist = range(1,n+1)
  newmlist =[]
  for i in mlist:
    m = '0'*(2-int(len(str(i))))+str(i)
    newmlist.append(m)
  return newmlist
years = year()#常用年份
months = month_or_day(12) #所有月份
days = month_or_day(31) #所有日期
most_str = ['!','*','#','_','.','@']# 常用特殊符号
#常见姓氏
first_name = ['li','ma','wu','xu','hu','tan','he','liu','sun','gao','luo','zheng','guo',
     'zhu','wang','zhao','yang','zhou','song','deng','zhang','huang','liang']
#常见名字
second_name = [
  'bo','bi','bai','bei','bao','ban','bin','bang','bing','biao',
  'ci','cai','can','cen','cun','ceng','cong','che','chi','chu','chao','chan','chen','chong','chuang',
  'de','di','du','dai','dao','dan','dong','ding',
  'fa','fu','fei','fan','fen','feng','fang',
  'gu','gui','gan','gen','guo','gang','geng','guan','guang',
  'hui','hao','han','huo','hang','heng','huan','huang',
  'ji','ju','jiu','jie','jun','jue','jing','jia','jiao','jian','juan','jiang','jin',
  'kai','kui','kan','kun','kuo','kang','kong',
  'le','li','lu','lai','lei','lan','lin','lang','ling','long','liao','lian','luan',
  'mi','mu','mai','mei','mao','man','min','mang','meng','ming','miao','mian',
  'na','ni','niu','nan','nuo','neng','ning',
  'pi','pu','pai','pei','pan','pin','pang','peng','ping','pian',
  'qi','qiu','qing','qiang','quan','qian',
  'si','su','sai','suo','sang','song','sha','shi','shu','shao','shou','shan','shang','shen','shuo','shuang',
  'ta','te','ti','tu','tai','tao','tan','tuo','tang','teng','ting','tong','tian',
  'wa','wei','wang','wan','wen'
  'xi','xu','xie','xin','xun','xue','xing','xiang','xiong','xia','xian','xuan',
  'ya','yi','yu','yao','you','yan','yun','yue','ying','yang','yong','yuan',
  'zao','zan','zun','zuo','zeng','zong','zhi','zhou','zhan','zhen','zhong','zhuan','zhuang',
]
#常用密码
common_key = ['11111111','00000000','11223344','0123456789','147258369','66666666','123123123',
       '88888888','12341234','88889999','11112222','a1b2c3d4','22222222','99999999','999999999',
       '1111111111','77777777','23456789','1122334455','55555555','qwertyuiop','8888888888',
       '12345687','012345678','abcd1234','a123456789','0000000000','12344321','123321123']
#常用密码字符
common_str = ['admin','china','love','110','asd','123456','super','0101','666','666666','888','888888','abc','fuck']

代码文件。根据实际需要,决定组合方式。

#coding=utf-8
#!/usr/bin/python
import key_data
import time
def file_edit(wr_str):#存入txt文件
  f1 = open(r'D:\python\key.txt','a')
  f1.write(wr_str)
  f1.close()
def write_to_file(w_list):#把列表中长度大于7的元素写入txt文件
  for i in w_list:
    if len(i)>7:
      file_edit(i+","+"\n")
def make_key(list1,list2,list3=[],list4=[]):#密码组合,支持2--4种任意组合
  key_list = []
  for a in list1:
    for b in list2:
      if list3:
        for c in list3:
          if list4:
            for d in list4:
              k = a+b+c+d
              key_list.append(k)
          else:
            k = a+b+c
            key_list.append(k)
      else:
        k=a+b
        key_list.append(k)
  return key_list
#key_list0 = key_data.common_key # 常用密码
#key_list1 = make_key(key_list0,key_data.most_str)#常用密码+特殊字符
#key_list2 = make_key(key_data.first_name,key_data.months,key_data.days)#姓+月+日
#key_list3 = make_key(key_data.first_name,key_data.months,key_data.days,key_data.most_str)#姓+月+日+特殊字符
#key_list4 = make_key(key_data.months,key_data.days,key_data.first_name)#月+日+姓
#key_list5 = make_key(key_data.first_name,key_data.common_str)#姓+常用字符
#key_list6 = make_key(key_data.first_name,key_data.second_name,key_data.years) #姓+名+年
#key_list7 = make_key(key_data.common_str,key_data.common_str) #常用字符+常用字符
#key_list8 = make_key(key_data.common_str,key_data.common_str,key_data.most_str) #常用字符+常用字符+特殊字符
#key_list9 = make_key(key_data.common_str,key_data.years) #常用字符+年
#key_list10 = make_key(key_data.second_name,key_data.second_name,key_data.months,key_data.days)#名+名+月+日
if __name__=='__main__':
  #开始生成密码文件
  write_to_file(key_list0)
  time.sleep(1)
  write_to_file(key_list1)
  time.sleep(1)
  write_to_file(key_list2)
  time.sleep(1)
  write_to_file(key_list3)
  print "done"
Python 相关文章推荐
python 判断自定义对象类型
Mar 21 Python
python实现统计代码行数的方法
May 22 Python
Python实现简单的文件传输与MySQL备份的脚本分享
Jan 03 Python
python实现下载文件的三种方法
Feb 09 Python
Python 中 Virtualenv 和 pip 的简单用法详解
Aug 18 Python
python操作MySQL 模拟简单银行转账操作
Sep 27 Python
Python3从零开始搭建一个语音对话机器人的实现
Aug 23 Python
python中几种自动微分库解析
Aug 29 Python
详解Python中第三方库Faker
Sep 25 Python
如何通过Python实现RabbitMQ延迟队列
Nov 28 Python
详解python字符串驻留技术
May 21 Python
Python 数据结构之十大经典排序算法一文通关
Oct 16 Python
python使用多线程编写tcp客户端程序
Sep 02 #Python
使用python实现离散时间傅里叶变换的方法
Sep 02 #Python
详解Python图像处理库Pillow常用使用方法
Sep 02 #Python
Django使用中间件解决前后端同源策略问题
Sep 02 #Python
python elasticsearch环境搭建详解
Sep 02 #Python
关于pymysql模块的使用以及代码详解
Sep 01 #Python
使用Python将字符串转换为格式化的日期时间字符串
Sep 01 #Python
You might like
《五等分的花嫁》漫画完结!2020年10月第2期TV动画制作组换血!
2020/03/06 日漫
漫威DC御用漫画家去世 他的表情包曾走红网络
2020/04/09 欧美动漫
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
2015/01/20 PHP
PHP实现Javascript中的escape及unescape函数代码分享
2015/02/10 PHP
基于php实现随机合并数组并排序(原排序)
2015/11/26 PHP
手把手编写PHP框架 深入了解MVC运行流程
2016/09/19 PHP
JS版网站风格切换实例代码
2008/10/06 Javascript
Javascript attachEvent传递参数的办法
2009/12/14 Javascript
js面向对象编程之如何实现方法重载
2014/07/02 Javascript
javascript瀑布流式图片懒加载实例
2020/06/28 Javascript
微信小程序之拖拽排序(代码分享)
2017/01/21 Javascript
Vue.js中用webpack合并打包多个组件并实现按需加载
2017/02/17 Javascript
Angularjs 实现动态添加控件功能
2017/05/25 Javascript
vue Render中slots的使用的实例代码
2017/07/19 Javascript
老生常谈ES6中的类
2017/07/31 Javascript
vue页面切换项目实现转场动画的方法
2019/11/12 Javascript
NodeJs crypto加密制作token的实现代码
2019/11/15 NodeJs
nodemon实现Typescript项目热更新的示例代码
2019/11/19 Javascript
详解Vue的组件中data选项为什么必须是函数
2020/08/17 Javascript
django模型中的字段和model名显示为中文小技巧分享
2014/11/18 Python
Python中使用hashlib模块处理算法的教程
2015/04/28 Python
python thrift搭建服务端和客户端测试程序
2018/01/17 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
Python3.6连接Oracle数据库的方法详解
2018/05/18 Python
Python计算时间间隔(精确到微妙)的代码实例
2019/02/26 Python
python实现集中式的病毒扫描功能详解
2019/07/09 Python
浅谈css3中的渐进增强和优雅降级
2017/12/01 HTML / CSS
HTML5 Blob对象的具体使用
2020/05/22 HTML / CSS
JDO的含义
2012/11/17 面试题
介绍java中初始化块的使用
2012/09/11 面试题
2014的自我评价
2014/01/13 职场文书
新闻编辑专业毕业自荐书范文
2014/02/05 职场文书
人口与计划生育责任书
2015/05/09 职场文书
工程竣工验收申请报告
2015/05/15 职场文书
Python 实现Mac 屏幕截图详解
2021/10/05 Python
SQL Server中的逻辑函数介绍
2022/05/25 SQL Server