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使用multiprocessing模块实现带回调函数的异步调用方法
Apr 18 Python
python实现的用于搜索文件并进行内容替换的类实例
Jun 28 Python
ubuntu系统下 python链接mysql数据库的方法
Jan 09 Python
python算法演练_One Rule 算法(详解)
May 17 Python
基于Python中单例模式的几种实现方式及优化详解
Jan 09 Python
Django实现全文检索的方法(支持中文)
May 14 Python
浅析Python装饰器以及装饰器模式
May 28 Python
Python实现注册、登录小程序功能
Sep 21 Python
python绘制评估优化算法性能的测试函数
Jun 25 Python
python中count函数简单用法
Jan 05 Python
Python几种常见算法汇总
Jun 02 Python
使用tensorflow根据输入更改tensor shape
Jun 23 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实现MVC开发得最简单的方法――模型
2007/04/10 PHP
PHP7变量处理机制修改
2021/03/09 PHP
Avengerls vs KG BO3 第二场2.18
2021/03/10 DOTA
学习js所必须要知道的一些
2007/03/07 Javascript
jquery 中多条件选择器,相对选择器,层次选择器的区别
2012/07/03 Javascript
解决遍历时Array.indexOf产生的性能问题
2012/07/03 Javascript
jQuery 事件的命名空间简单了解
2013/11/22 Javascript
jQuery实现Twitter的自动文字补齐特效
2014/11/28 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
2015/10/21 Javascript
js获取html的span标签的值方法(超简单)
2016/07/26 Javascript
jQuery插件jqGrid动态获取列和列字段的方法
2017/03/03 Javascript
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
2018/09/04 Javascript
H5+C3+JS实现五子棋游戏(AI篇)
2020/05/28 Javascript
echarts实现折线图的拖拽效果
2019/12/19 Javascript
如何解决jQuery 和其他JS库的冲突
2020/06/22 jQuery
把大数据数字口语化(python与js)两种实现
2013/02/21 Python
Windows下实现Python2和Python3两个版共存的方法
2015/06/12 Python
深入理解Python中的内置常量
2017/05/20 Python
python遍历文件夹,指定遍历深度与忽略目录的方法
2018/07/11 Python
Python 判断奇数偶数的方法
2018/12/20 Python
Win10下Python3.7.3安装教程图解
2019/07/08 Python
python数据化运营的重要意义
2019/11/25 Python
python等差数列求和公式前 100 项的和实例
2020/02/25 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
2020/03/30 Python
详解python对象之间的交互
2020/09/29 Python
python调用win32接口进行截图的示例
2020/11/11 Python
银行会计职员个人的自我评价
2013/09/29 职场文书
医学护理系毕业生求职信
2013/10/01 职场文书
汽车专业毕业生推荐信
2013/11/12 职场文书
幼儿园三八妇女节活动方案
2014/03/11 职场文书
开学寄语大全
2014/04/08 职场文书
学校课外活动总结
2014/05/08 职场文书
信用卡逾期证明示例
2014/09/13 职场文书
安徽导游词
2015/02/12 职场文书
二十年同学聚会致辞
2015/07/28 职场文书
Python语言规范之Pylint的详细用法
2021/06/24 Python