前言:
這篇文章主要介紹了Python/ target=_blank class=infotextkey>Python如何生成密碼字典,密碼字典主要是配合解密使用,下面利用python實現生成密碼字典,需要的小伙伴可以參考一下
一、密碼字典
所謂密碼字典,主要是配合解密使用,一般情況用來暴力破解密碼,是由指定字符排列組合組成的文本文件。如果知道密碼設置的規律指定性生成密碼,會對破解密碼有決定性的幫助!!
二、字典生成
1.生成6位數小寫字母+數字密碼字典
代碼如下(示例):
import itertools as its
words = 'abcdefghijklmnopqrstuvwxyz1234567890' #采用的字符
r = its.product(words, repeat=6) # repeat 要生成多少位的字典
dic = open("pass.txt", "a") #保存
for i in r:
dic.write("".join(i))
dic.write("".join("r"))
dic.close()
2.選擇模式運行
python dictionary.py default
python dictionary.py numonly
python dictionary.py letteronly
代碼如下(示例):
import itertools as its
import argparse
def run_default(length,filename):
global words
'''
words='ha'
if numonly == True:
words="1234567890"
else:
words="1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM"
'''
words="1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM"
r =its.product(words,repeat=length)
dic = open(filename,'a')
for i in r:
dic.write("".join(i))
dic.write("".join("n"))
dic.close()
def run_numonly(length,filename):
global words
words="1234567890"
r =its.product(words,repeat=length)
dic = open(filename,'a')
for i in r:
dic.write("".join(i))
dic.write("".join("n"))
dic.close()
def run_letteronly(length,filename):
global words
words="qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM"
r =its.product(words,repeat=length)
dic = open(filename,'a')
for i in r:
dic.write("".join(i))
dic.write("".join("n"))
dic.close()
if __name__ == "__main__":
choices={"default":run_default,"numonly":run_numonly,"letteronly":run_letteronly}
parser=argparse.ArgumentParser(description='快速生成密碼字典')
parser.add_argument('model',choices=choices,help='選擇哪個模式運行')
parser.add_argument('--length',metavar='length',type=int,default=3,help="密碼字典內密碼的長度")
parser.add_argument('-filename',metavar='filename',type=str,default='password.txt',help="密碼字典文件昵稱")
#parser.add_argument('-numonly',metavar='numonly',type=bool,default=False,help="是否只含有數字")
args=parser.parse_args()
func=choices[args.model]
func(args.length,args.filename)