1. 程式人生 > 程式設計 >Python實現生成密碼字典的方法示例

Python實現生成密碼字典的方法示例

本文例項講述了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','gang','geng','guan','guang','hui','hao','han','huo','hang','heng','huan','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','sha','shi','shu','shao','shou','shan','shang','shen','shuo','shuang','ta','te','ti','tu','tai','tao','tuo','tang','teng','ting','tong','tian','wa','wei','wan','wen'
  'xi','xie','xin','xun','xue','xing','xiang','xiong','xia','xian','xuan','ya','yi','yu','yao','you','yan','yun','yue','ying','yong','yuan','zao','zan','zun','zuo','zeng','zong','zhi','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.days,key_data.most_str)#姓+月+日+特殊字元
#key_list4 = make_key(key_data.months,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.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"

PS:這裡再提供幾款相關工具供大家參考使用:

線上隨機數生成工具:
http://tools.jb51.net/aideddesign/rnd_num

線上隨機生成個人資訊資料工具:
http://tools.jb51.net/aideddesign/rnd_userinfo

線上隨機字元/隨機密碼生成工具:
http://tools.jb51.net/aideddesign/rnd_password

線上隨機數字/字串生成工具:
http://tools.jb51.net/aideddesign/suijishu

更多關於Python相關內容感興趣的讀者可檢視本站專題:《Python數學運算技巧總結》、《Python字串操作技巧彙總》、《Python編碼操作技巧總結》、《Python資料結構與演算法教程》、《Python函式使用技巧總結》、《Python入門與進階經典教程》及《Python檔案與目錄操作技巧彙總》

希望本文所述對大家Python程式設計有所幫助。