Мне надо создать генератор поролей.
Он должен делать следующее:
1. Спрашивать у пользоватея длину пороля
2. В зависимости от длины генерирует случайные цифры. Проверяет повторяются ли они, если есть повторы генерирует снова, пока не создаст уникальный пароль
3. Цифры это индексы в массиве со знаками. В цикле он выдаёт соответствующие буквы/цифры.
4. Делает с созданным паролем все возможные вариации и выдаёт лучшие.
Мои проблемы:
Как мне сделать в одном цикле чтоб генерировал/ проверял
Програмный код, которые делает все возможные вариации работает только с конретным словом, а у меня не получается создать из “пороля” слово (Знаю, что не очень понятно, но в коде будет видно)
Заранее спасибо за помощь. Знаю код не очень грамотный, ну чтож делать, может когда всё заработает, постораюсь оптимизировать)
#Generator porolei
#Fail
file=open("/ps.txt","r")
znaki=[]
def ridade_lugemine(file,list):
for rida in file:
rida.split("\t")
rida=rida.rstrip("\n")
list.append(rida)
ridade_lugemine(file,znaki)
#Dlina paroli
print "Vvedite dlinu parolya:",
pikkus=input()
while pikkus>16:
if (pikkus>16):
print "Parol dlinne 4em 16 znakov, poprobui ese raz!"
pikkus=input()
else:
continue
from random import*
parool=[]
#TUT PERVAYA PROBLEMA
for i in range(0,pikkus):
parool.append(randint(1,len(znaki)-1))
print parool #пока что указываю принт, что бы наглядно видеть, позже программа должна будет выдавать только самые удачные вариации
for i in range(len(parool)):
for j in range(i):
if (parool[j]==parool[i]):
j+=1
print "Fuck"
#Вот тут ещё может быть проблема, что программа начинает повторять цифры начиная с длины в 7 знаков. Можно ли её это как-то запретить, а то она и останется генерировать?
slovo=0
for i in range(0,len(parool)):
slovo=znaki[parool[i]]
print slovo,
def perm(algus,veel):
if len(veel)==1:
print(algus+veel[0])
else:
for i in range(0,len(veel)):
perm(algus+veel[i],veel[:i]+veel[i+1:])
perm('',slovo)