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时间戳与时间字符串互相转换实例代码
Nov 28 Python
python完成FizzBuzzWhizz问题(拉勾网面试题)示例
May 05 Python
在RedHat系Linux上部署Python的Celery框架的教程
Apr 07 Python
Python编写一个闹钟功能
Jul 11 Python
python利用正则表达式搜索单词示例代码
Sep 24 Python
python遍历文件夹下所有excel文件
Jan 03 Python
使用Python实现在Windows下安装Django
Oct 17 Python
python如何读取bin文件并下发串口
Jul 05 Python
opencv导入头文件时报错#include的解决方法
Jul 31 Python
Pytorch根据layers的name冻结训练方式
Jan 06 Python
使用豆瓣源来安装python中的第三方库方法
Jan 26 Python
python基础之停用词过滤详解
Apr 21 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
PHP函数getenv简介和使用实例
2014/05/12 PHP
php中静态类与静态变量用法的区别分析
2015/01/15 PHP
有效的捕获JavaScript焦点的方法小结
2009/10/08 Javascript
IE8 chrome中table隔行换色解决办法
2010/07/09 Javascript
基于node.js的快速开发透明代理
2010/12/25 Javascript
如何使用Javascript正则表达式来格式化XML内容
2013/07/04 Javascript
jquery自定义类似$.ajax()的方法实现代码
2013/08/13 Javascript
检查输入的是否是数字使用keyCode配合onkeypress事件
2014/01/23 Javascript
JavaScript中的类数组对象介绍
2014/12/30 Javascript
jQuery实现的进度条效果
2015/07/15 Javascript
大型JavaScript应用程序架构设计模式
2016/06/29 Javascript
全面解析标签页的切换方式
2016/08/21 Javascript
微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
2016/11/25 Javascript
深入理解javascript函数参数与闭包
2016/12/12 Javascript
Agularjs妙用双向数据绑定实现手风琴效果
2017/05/26 Javascript
jQuery实现右侧抽屉式在线客服功能
2017/12/25 jQuery
vue组件详解之使用slot分发内容
2018/04/09 Javascript
一篇文章带你使用Typescript封装一个Vue组件(简单易懂)
2020/06/05 Javascript
微信小程序向Java后台传输参数的方法实现
2020/12/10 Javascript
python制作企业邮箱的爆破脚本
2016/10/05 Python
Python简单计算数组元素平均值的方法示例
2017/12/26 Python
Python编写打字训练小程序
2019/09/26 Python
夏威夷灵感服装及配饰:Reyn Spooner
2018/09/18 全球购物
泰国最新活动和优惠:Megatix
2020/05/07 全球购物
毕业典礼演讲稿
2014/05/13 职场文书
竞选学习委员演讲稿
2014/09/01 职场文书
无犯罪记录证明
2014/09/19 职场文书
2014年维稳工作总结
2014/11/18 职场文书
航班延误投诉信
2015/07/02 职场文书
《语言的突破》读后感3篇
2019/12/12 职场文书
Golang 使用Map实现去重与set的功能操作
2021/04/29 Golang
MySQL官方导出工具mysqlpump的使用
2021/05/21 MySQL
Python爬虫实战之爬取京东商品数据并实实现数据可视化
2021/06/07 Python
用JS写一个发布订阅模式
2021/11/07 Javascript
nginx lua 操作 mysql
2022/05/15 Servers
pd.DataFrame中的几种索引变换的实现
2022/06/16 Python