import bcrypt import random import string def print_passwords(): str1 = "!@#$%^&*" src = string.ascii_letters + string.digits + str1 count = input('请确认要生成几条密码: ') p = input('请确认要生成的密码位数(最少4位): ') list_passwords = [] for i in range(int(count)): while 1 == 1: list_passwords_all = random.choices(src, k=int(p) - 4) list_passwords_all.extend(random.sample(string.digits, 1)) # 让密码中一定包含数字 list_passwords_all.extend(random.sample(string.ascii_lowercase, 1)) # 让密码中一定包含小写字母 list_passwords_all.extend(random.sample(string.ascii_uppercase, 1)) # 让密码中一定包含大写字母 list_passwords_all.extend(random.sample(str1, 1)) # 让密码中一定包含特殊符号 random.shuffle(list_passwords_all) # 打乱列表顺序 str_passwd = ''.join(list_passwords_all) # 将列表转化为字符串 if str_passwd not in list_passwords: # 判断是否生成重复密码 list_passwords.append(str_passwd) break print(list_passwords) for passwd in list_passwords: salt = bcrypt.gensalt() hashed = bcrypt.hashpw(passwd.encode(), salt) print(passwd) # print(salt) print(hashed) if __name__ == '__main__': print_passwords()
python 生成包含数字、大写字母、小写字母和特殊字符的密码,并且使用bcrypt对密码进行加密
最新推荐文章于 2023-04-13 09:45:08 发布