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-12-19 16:48:04 发布
本文介绍如何使用Python的`bcrypt`库生成包含数字、字母、特殊字符的随机密码,并确保每条密码独一无二。同时演示了如何对生成的密码进行哈希加密,提高安全性。

1254

被折叠的 条评论
为什么被折叠?



