验证用户密码的随机选择字符

时间:2019-10-13 16:28:01

标签: python python-3.x

我正在尝试找出在Python中验证用户密码的最佳方法。

方案:将要求用户输入3个随机字符的密码。 用户输入将根据存储的密码进行验证。 例如:

enter character 3 of your password:
enter character 6 of your password:
enter character 2 of your password: 

如果3个条目都正确,则显示一些消息,如果没有终止程序,则显示

什么是最好的方法?我正在努力一段时间。

我试图将密码存储在数组中,并使用random.randrange(len(array))和比if语句来验证用户输入和其他想法的数量,但到目前为止还算运气。

2 个答案:

答案 0 :(得分:0)

使用random.choice(thelist)
i = random.choice(range(len(thelist)))

所以现在使用thelist[i],它是i + 1字符

答案 1 :(得分:0)

这是完成这项任务的一种方法。

import random

stored_user_password = 'password'

user_input_prompts = ['enter character 2 of your password:', 
                      'enter character 3 of your password:', 
                      'enter character 6 of your password:']

# selects a random input from the list user_input_prompts
random_prompt = random.choice(user_input_prompts)

# prompts the user with the random obtained above
password_character = input(f'{random_prompt}')

# create a unique character set of the stored password
# ['a', 'd', 'o', 'p', 'r', 's', 'w']
characters = set(stored_user_password)

# https://docs.python.org/3/library/functions.html#all
# all will return True only when all the elements 
if all((char in characters) for char in password_character):
    print('The characters provided are in your stored password.')
else:
  print('The characters provided are not in your stored password.')