Advertisement
fly51fly

gen_pass_v2

Nov 2nd, 2021
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.36 KB | None | 0 0
  1. import string
  2. from types import resolve_bases
  3.  
  4. def evaluate_password(password):
  5.     result = False
  6.     password_state = 0b00000
  7.  
  8.     for char in password:
  9.         if char in string.ascii_uppercase:
  10.             password_state |= 0b10000
  11.         elif char in string.ascii_lowercase:
  12.             password_state |= 0b01000
  13.         elif char in string.digits:
  14.             password_state |= 0b00100
  15.         else:
  16.             password_state |= 0b00010
  17.  
  18.     if len(password) >= 8:
  19.         password_state |= 0b00001
  20.    
  21.     #TODO:输出结果
  22.     if password_state == 0b11111:
  23.         print('密码符合要求!')
  24.         result = True
  25.     else:
  26.         prompt = '密码不符合要求,'
  27.         if password_state & 0b00001 == 0:
  28.             prompt += '长度不足8,'
  29.         if password_state & 0b10000 == 0:
  30.             prompt += '没有包含大写符号,'
  31.         if password_state & 0b01000 == 0:
  32.             prompt += '没有包含小写符号,'
  33.         if password_state & 0b00100 == 0:
  34.             prompt += '没包含数字,'
  35.         if password_state & 0b00010 == 0:
  36.             prompt += '没包含标点,'
  37.         prompt = prompt[:-1]
  38.         print(prompt)
  39.     return result
  40.  
  41. def main():
  42.     while 1:
  43.         user_password = input("请输入新密码:")
  44.         if evaluate_password(user_password):
  45.             break
  46.  
  47. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement