pythonランダムパスワード辞書ジェネレータの実装例
1088 ワード
すべてのパスワードを窮挙しようとすると、アルゴリズムはネストが深すぎるか、特にメモリが消費される(オーバーフローする).その後、簡単な繰り返し確率の低いアルゴリズムを選んだ.コードは次のとおりです.
# -*- coding:utf-8 -*-
'''
@ function:
'''
import random
class 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):
return 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)