当初はすべてのパスワードを網羅的に列挙したかったのですが、アルゴリズムのネストが深すぎるか、メモリを消費しすぎるため(オーバーフローしてしまいます)、後で単純な繰り返しの可能性が低いアルゴリズムを選択しました。コードは次のとおりです。 :
コードをコピー コードは次のとおりです:
# -*-coding:utf-8 -*-
'''
@ 関数: ランダムなパスワード辞書を生成します
'''
インポート ランダム
クラス Dictor():
CSet=' abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789~!@#$%^&*() _-+ =/*<>:;'"[]{}|'
def __init__(self,minlen,maxlen):
if maxlen>minlen:
self.__minlen=minlen
self .__maxlen=maxlen
else:
self.__minlen=maxlen
self.__maxlen=minlen
def __iter__(self):
def __next__( self):
ret =''
for i in range(0,random.randrange(self.__minlen,self.__maxlen+1))):
ret+=random.choice(Dictor.CSet)
return ret
if __name__=='__main__':
for str in Dictor(6,16):
print(str)