python中的密码生成程序

2024-09-30 01:19:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我生成了随机密码。现在,我想将每个密码分配给用户列表中的每个/不同的用户。但只有最后一个密码被分配给每个用户。代码如下

import random

chars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456!@#$%^&*()"
users=['A','B','C']


users_count= 0
for i in users: 
      users_count = users_count + 1
# print (str(users_count))



pass_len=int(input("Password length = "))
pass_count=users_count

for i in range(0,pass_count):
    password=""
    for i in range(0,pass_len):
        pass_chars= random.choice(chars)
        password=password+pass_chars 
    print("all pass are : " ,password)
 
for user in users:
    print(user," Password : ",password)

输出如下:

Password length = 5
all pass are :  As6iI
all pass are :  FhAIX
all pass are :  fjJBH
A  Password :  fjJBH
B  Password :  fjJBH
C  Password :  fjJBH

Tags: 用户in密码forcountrandompasspassword
2条回答

使用字典存储配对<;用户,密码>

user_passwords = {}
for user in users: # For each user
    password = ""
    for i in range(0, pass_len): # Lets generate the password
        password = password + random.choice(chars) # Add a random character
    user_passwords[user] = password # assign the password to the user

for user in users:
    print(user," Password : ",user_passwords[user])

或更简短的版本:

user_passwords = {}
for user in users:
    for i in range(0, pass_len):
        user_passwords[user] = user_passwords.get(user, "") + random.choice(chars)

for user in users:
    print(user," Password : ",user_passwords[user])

您的代码存在问题:

password=""
for i in range(0,pass_len):
    pass_chars= random.choice(chars)
    password=password+pass_chars 
print("all pass are : " ,password) 
        #   <  Missing assigning the password to the user

您生成的是随机密码,但没有将其分配给用户

but only the last password is being assigned to each user. The code is below.

这是因为您在对用户进行迭代,通过打印始终是以前生成的最后一个密码:

for user in users:
    print(user," Password : ",password)

“password”是一个一次只能有1个值的变量,当您在循环中更改password的值时,当循环结束时,将只保留最后一个值

创建一个数组并在循环中向其追加密码,然后在循环中为每个用户调用该数组

相关问题 更多 >

    热门问题