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设置Socket代理及实现远程摄像头控制的例子
Nov 13 Python
Python+OpenCV人脸检测原理及示例详解
Oct 19 Python
分数霸榜! python助你微信跳一跳拿高分
Jan 08 Python
对python3 一组数值的归一化处理方法详解
Jul 11 Python
python  文件的基本操作 菜中菜功能的实例代码
Jul 17 Python
python实现倒计时小工具
Jul 29 Python
对python中UDP,socket的使用详解
Aug 22 Python
python异步编程 使用yield from过程解析
Sep 25 Python
Python标准库shutil模块使用方法解析
Mar 10 Python
python异常处理之try finally不报错的原因
May 18 Python
怎么解决pycharm license Acti的方法
Oct 28 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
Dec 04 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中利用post传递字符串重定向的实现代码
2011/04/21 PHP
CodeIgniter自定义控制器MY_Controller用法分析
2016/01/20 PHP
PHP转换文本框内容为HTML格式的方法
2016/07/20 PHP
JS打开图片另存为对话框实现代码
2012/12/26 Javascript
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
2013/05/24 Javascript
js传中文参数controller里获取参数乱码问题解决方法
2014/01/03 Javascript
jquery each的几种常用的使用方法示例
2014/01/21 Javascript
jQuery+CSS实现的网页二级下滑菜单效果
2015/08/25 Javascript
js实现可控制左右方向的无缝滚动效果
2016/05/29 Javascript
jquery radio的取值_radio的选中_radio的重置方法
2016/09/20 Javascript
js实现的光标位置工具函数示例
2016/10/03 Javascript
原生js实现可爱糖果数字时间特效
2016/12/30 Javascript
微信小程序 二维码canvas绘制实例详解
2017/01/06 Javascript
JS动态生成年份和月份实例代码
2017/02/04 Javascript
正则验证小数点后面只能有两位数的方法
2017/02/28 Javascript
jquery PrintArea 实现票据的套打功能(代码)
2017/03/17 Javascript
强大的 Angular 表单验证功能详细介绍
2017/05/23 Javascript
jQuery中ajax获取数据赋值给页面的实例
2017/12/31 jQuery
详解redis在nodejs中的应用
2018/05/02 NodeJs
layui 图片上传+表单提交+ Spring MVC的实例
2019/09/21 Javascript
微信小程序实现简单购物车功能
2020/12/30 Javascript
用Python制作在地图上模拟瘟疫扩散的Gif图
2015/03/31 Python
python如何把嵌套列表转变成普通列表
2018/03/20 Python
python递归函数绘制分形树的方法
2018/06/22 Python
Python测试网络连通性示例【基于ping】
2018/08/03 Python
python验证码图片处理(二值化)
2019/11/01 Python
如何在sublime编辑器中安装python
2020/05/20 Python
Python实现自动装机功能案例分析
2020/10/22 Python
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
美国折扣香水网站:The Perfume Spot
2020/12/12 全球购物
新书发布会策划方案
2014/06/09 职场文书
建筑工地质量标语
2014/06/12 职场文书
2014年体育工作总结
2014/11/24 职场文书
物业保洁员岗位职责
2015/02/13 职场文书
赵氏孤儿观后感
2015/06/09 职场文书
农村婚庆主持词
2015/06/29 职场文书