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 05 Python
介绍Python中内置的itertools模块
Apr 29 Python
Python中的anydbm模版和shelve模版使用指南
Jul 09 Python
Python队列的定义与使用方法示例
Jun 24 Python
python 搭建简单的http server,可直接post文件的实例
Jan 03 Python
Python使用post及get方式提交数据的实例
Jan 24 Python
元组列表字典(莫烦python基础)
Apr 03 Python
浅谈Python的方法解析顺序(MRO)
Mar 05 Python
python实现udp聊天窗口
Mar 31 Python
jupyter notebook oepncv 显示一张图像的实现
Apr 24 Python
Python 列表反转显示的四种方法
Nov 16 Python
Python实例教程之检索输出月份日历表
Dec 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
如何使用动态共享对象的模式来安装PHP
2006/10/09 PHP
php日历[测试通过]
2008/03/27 PHP
PHP动态分页函数,PHP开发分页必备啦
2011/11/07 PHP
一个简单的网页密码登陆php代码
2012/07/17 PHP
PHP中curl_setopt函数用法实例分析
2015/04/16 PHP
phpcms的分类名称和类别名称的调用
2017/01/05 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
thinkPHP5实现数据库添加内容的方法
2017/10/25 PHP
laravel 多图上传及图片的存储例子
2019/10/14 PHP
javascript日期格式化方法小结
2015/12/17 Javascript
JavaScript function函数种类详解
2016/02/22 Javascript
JavaScript知识点总结(十六)之Javascript闭包(Closure)代码详解
2016/05/31 Javascript
Vue的Flux框架之Vuex状态管理器
2017/07/30 Javascript
JavaScript判断输入是否为数字类型的方法总结
2017/09/28 Javascript
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
js tab栏切换代码实例解析
2019/09/03 Javascript
通过实例解析json与jsonp原理及使用方法
2020/09/27 Javascript
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
Python将多个list合并为1个list的方法
2018/06/27 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
Pytorch转onnx、torchscript方式
2020/05/25 Python
KEETSA环保床垫:更好的睡眠,更好的生活!
2016/11/24 全球购物
关键字final的用法
2013/10/02 面试题
计算机应用职专应届生求职信
2013/11/12 职场文书
小学教师管理制度
2014/01/18 职场文书
大学班级干部的自我评价分享
2014/02/10 职场文书
通信工程专业求职信
2014/06/04 职场文书
抗震救灾标语
2014/06/26 职场文书
党员民主评议个人总结
2014/10/20 职场文书
2014年村党支部工作总结
2014/12/04 职场文书
2015年劳动部工作总结
2015/05/23 职场文书
springboot 多数据源配置不生效遇到的坑及解决
2021/11/17 Java/Android
Java异常处理try catch的基本用法
2021/12/06 Java/Android
一文弄懂MySQL中redo log与binlog的区别
2022/02/15 MySQL
mysql使用instr达到in(字符串)的效果
2022/04/03 MySQL
python使用shell脚本创建kafka连接器
2022/04/29 Python