Python--随机生成指定长度的密码

在浏览别人博客时学习了random模块,手痒自我练习下,写个随机生成指定长度的密码字符串的函数,拿出来供各位参考:

废话不多说,上代码:

复制代码
# coding: utf-8
import random
import string

SPECIAL_CHARS = '~%#%^&*'
PASSWORD_CHARS = string.ascii_letters + string.digits + SPECIAL_CHARS


def generate_random_password(password_length=10):
    """
    生成指定长度的密码字符串,当密码长度超过3时,密码中至少包含:
    1个大写字母+1个小写字母+1个特殊字符
    :param password_length:密码字符串的长度
    :return:密码字符串
    """
    char_list = [
        random.choice(string.ascii_lowercase),
        random.choice(string.ascii_uppercase),
        random.choice(SPECIAL_CHARS),
    ]
    if password_length > 3:
        # random.choice 方法返回一个列表,元组或字符串的随机项
        # (x for x in range(N))返回一个Generator对象
        # [x for x in range(N)] 返回List对象
        char_list.extend([random.choice(PASSWORD_CHARS) for _ in range(password_length - 3)])
    # 使用random.shuffle来将list中元素打乱
    random.shuffle(char_list)
    return ''.join(char_list[0:password_length])


def test_password_generate():
    random_password = generate_random_password(password_length=6)
    print(random_password)


test_password_generate()
复制代码

 

打完手工,上妹子:

posted on   笑东风  阅读(2387)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
历史上的今天:
2012-05-04 Entity Framework Power Tool

导航

点击右上角即可分享
微信分享提示