Найти - Пользователи
Полная версия: 2 вопроса
Начало » Python для новичков » 2 вопроса
1
Murderdoll666
Здравствуйте. У меня такая проблема, точнее сказать их две.
Мне надо создать генератор поролей.
Он должен делать следующее:
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,
print

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)
o7412369815963
не запускал, но в коде явно есть ошибки:
rida.split(“\t”)
rida=rida.rstrip(“\n”) # у массива вроде как нет rstrip, нужно поменять с прде строкой местами
list.append(rida) # переменной list нет, есть znaki
slovo=tahed[parool] # что за tahed?

а вообще вам пригодится метод:
>>> import random
>>> random.sample('qwertyuiopasdfghjkl',10)
['g', 'e', 'j', 'r', 'h', 's', 'o', 't', 'f', 'k']
Murderdoll666
o7412369815963
За tahed извиняюсь, я просто переводила, что бы было понятнее, и пропустила в этом месте.. Исправила.
За метод спасибо
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB