首页 > 解决方案 > 我想从 txt 文件中打印唯一密码和 19 个随机密码。我怎样才能使这项工作?

问题描述

from random import shuffle 
print('give me your password') 
password = input()
def generator():
    g = open('Desktop/COWRIE/passwords.txt', "r")
    passwords = g.read().split("\n")
    shuffle(passwords)
    g.close()
    txt = print ('YOUR HONEYPOT IS :','\n')
    for i in range(1,20):
        passwords[i]
        print(passwords[i])
        
        
if __name__ == "__main__":
    generator()

标签: pythongeneratorhoneypot

解决方案


您可以有一个介于 0 到 len-1 之间的集合和随机索引,然后您可以添加以设置随机密码,直到集合的长度为 19

from random import shuffle, randrange

def generator():
    g = open('passwords.txt', "r")
    passwords = g.read().split("\n")
    shuffle(passwords)
    g.close()
    l =len(passwords)-1
    txt = print('YOUR HONEYPOT IS :', '\n')
    s =set()
    while len(s)<19:
        i = randrange(l)
        s.add(passwords[i])

    for p in passwords:
        print(p)


if __name__ == "__main__":
    generator()

推荐阅读