首页 > python教程

python如何随机生成高强度密码

时间:2020-10-13 python教程 查看: 801

本文实例为大家分享了python随机生成高强度密码的具体代码,供大家参考,具体内容如下

import random
import re

# 字母类型
englishChar = ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'l', 'k', 'j', 'h', 'g', 'f', 'd', 's', 'a', 'z', 'x',
    'c', 'v',
    'b', 'n', 'm']
# 数字类型
numberChar = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']
# 符号类型
symbolChar = ['!', '@', '#', '$', '%', '^', '&', '*']
# 生成的密码
password = ''

# 用户选择的密码类型
allChar = []
# 选择密码类型
print('1、字母')
print('2、字母+数字')
print('3、字母+数字+符号')
typePassword = input('输入你的密码类型选择(数字):')
# 判断输入是否合法
if not re.fullmatch('[1-3]', typePassword):
 print("\033[37;41m 不要跟我皮\033[0m")
 exit(0)
# 初始化密码类型
if typePassword.__eq__('1'):
 allChar = englishChar.copy()
if typePassword.__eq__('2'):
 allChar = englishChar.copy() + numberChar.copy()
if typePassword.__eq__('3'):
 allChar = englishChar.copy() + numberChar.copy() + symbolChar.copy()
# 重新洗牌数组
random.shuffle(allChar)
# 配置基本信息
account = input('你为哪个账号设置密码?:')
accountID = input('输入账户ID:')
passwordLength = input('密码长度是多少(25>p>7):')
# 检测用户输入是否合法
if not passwordLength.isdigit() and 25 > int(passwordLength) > 7:
 print("\033[37;41m 不要跟我皮\033[0m")
 exit(0)
# 循环生成密码
for i in range(int(passwordLength)):
 a = len(allChar) - 1
 password = password + allChar[random.randint(0, a)]

# 密码文件备份
with open('/Users/apple/专业知识/密码/' + account, 'w', encoding='utf8') as file:
 file.writelines("账户ID:" + accountID + '\n')
 file.writelines('密码:' + password)
 file.close()
# 展示密码
print('生成的密码为:' + password)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持python博客。

展开全文
上一篇:简述 Python 的类和对象
下一篇:详解python UDP 编程
输入字:
相关知识
Python 实现图片色彩转换案例

我们在看动漫、影视作品中,当人物在回忆过程中,体现出来的画面一般都是黑白或者褐色的。本文将提供将图片色彩转为黑白或者褐色风格的案例详解,感兴趣的小伙伴可以了解一下。

python初学定义函数

这篇文章主要为大家介绍了python的定义函数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助,希望能够给你带来帮助

图文详解Python如何导入自己编写的py文件

有时候自己写了一个py文件,想要把它导入到另一个py文件里面,所以下面这篇文章主要给大家介绍了关于Python如何导入自己编写的py文件的相关资料,需要的朋友可以参考下

python二分法查找实例代码

二分算法是一种效率比较高的查找算法,其输入的是一个有序的元素列表,如果查找元素包含在列表中,二分查找返回其位置,否则返回NONE,下面这篇文章主要给大家介绍了关于python二分法查找的相关资料,需要的朋友可以参考下