maven Apache Java程序员 reflection gtk rss Fries access教学视频 excel动态图表制作 js对象添加元素 css面试题 ubuntu更改文件夹权限 idea全局替换 python输出 python日期转时间戳 python随机整数 python打开文件夹 java语法基础 java编程入门 java怎么获取当前时间 幽城幻剑录五内 轮播图js代码 离散数学pdf 蒙文字体 跳一跳脚本 渐变事件 只狼脚本 oem修改器 电脑基础 dll下载 teraterm skycc组合营销软件 陌陌电脑直播设置教程 惠普战99 工程html加密 ps扭曲变形 只狼台词 疯狂的站长 pp安卓助手 华为工具箱
当前位置: 首页 > 学习教程  > python

Python自学7(密码生成器)

2021/2/8 12:15:11 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

" 盛世纷繁、曲终人散成幻、却道是、此生不悔…… " 密码生成器1、简单密码生成器1.1、要求1.2、二个模块1.2.1、password _ generator.py 模块1.2.2、 randomchar.py 模块2、复杂密码生成器2.1、要求2.2、二个模块2.2.1、 password _ generator.py 模块2.2.2、 rand…

在这里插入图片描述
" 盛世纷繁、曲终人散成幻、却道是、此生不悔…… "

密码生成器

  • 1、简单密码生成器
    • 1.1、要求
    • 1.2、二个模块
      • 1.2.1、password _ generator.py 模块
      • 1.2.2、 randomchar.py 模块
  • 2、复杂密码生成器
    • 2.1、要求
    • 2.2、二个模块
      • 2.2.1、 password _ generator.py 模块
      • 2.2.2、 randomchar.py 模块

1、简单密码生成器

1.1、要求

要求

  1. 8~20个字符
  2. 随机产生全是0~9的数字

1.2、二个模块

1.2.1、password _ generator.py 模块

import randomchar


def generate_password(length):
    if length < 4:
        raise ValueError('密码至少为 4 位')
        # 主动抛出错误
        # output:ValueError:密码至少为 4 位

    random_char = randomchar.RandomChar()
    # randomchar.RandomChar()引用模块中的类
    # random_char = randomchar.RandomChar()是类的实例化
    count = 1
    password = ""
    while count <= length:
        password += random_char.digit()
        count += 1

    return password


password_length = int(input('请输入密码长度(8~20):'))

if password_length < 8 or password_length > 20:
    raise ValueError('密码长度不符')
    # 主动抛出错误
    # output:ValueError:密码长度不符

password = generate_password(password_length)
print(password)

1.2.2、 randomchar.py 模块

import random


class RandomChar:
    def __init__(self):
        self.all_digits = '0123456789'

    def pick_random_item(self, sequence):
        random_int = random.randint(0, len(sequence) - 1)
        return sequence[random_int]

    def digit(self):
        return self.pick_random_item(self.all_digits)
        # pick_random_item()
        # 接受一个字符串作为参数随机返回这个字符串中的一个字符

2、复杂密码生成器

2.1、要求

要求

  1. 密码需要随机生成
  2. 至少包含一个大写字母(A~Z)
  3. 至少包含一个小写字母(a~z)
  4. 至少包含一个数字(0~9)
  5. 至少包含一个特殊字符(~!@#$%^&*)
  6. 长度可以自由设置、范围是 8~20
  7. 通过命令行进行交互、如设置密码长度

2.2、二个模块

2.2.1、 password _ generator.py 模块

import randomchar


def generate_password(length):
	password = ""
    if length < 4:
        raise ValueError('密码至少为 4 位')
        # 主动抛出错误
        # output:ValueError:密码至少为 4 位

    random_char = randomchar.RandomChar()
    # randomchar.RandomChar()引用模块中的类
    # random_char = randomchar.RandomChar()是类的实例化


    password  = random_char.uppercase()
    password += random_char.lowercase()
    password += random_char.digit()
    password += random_char.special()

    count = 5
    while count <= length:
        password += random_char.anyone()
        count += 1

    return password


password_length = int(input('请输入密码长度(8~20):'))

if password_length < 8 or password_length > 20:
    raise ValueError('密码长度不符')
    # 主动抛出错误
    # output:ValueError:密码长度不符

password = generate_password(password_length)
print(password)

2.2.2、 randomchar.py 模块

import random


class RandomChar:
    def __init__(self):
        self.all_uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
        self.all_lowercase = 'abcdefghijklmnopqrstuvwxyz'
        self.all_digits = '0123456789'
        self.all_specials = '~!@#$%^&*'

    def pick_random_item(self, sequence):
        random_int = random.randint(0, len(sequence) - 1)
        return sequence[random_int]

    def uppercase(self):
        return self.pick_random_item(self.all_uppercase)
        # pick_random_item()
        # 接受一个字符串作为参数随机返回这个字符串中的一个字符

    def lowercase(self):
        return self.pick_random_item(self.all_lowercase)
        # pick_random_item()
        # 接受一个字符串作为参数随机返回这个字符串中的一个字符

    def digit(self):
        return self.pick_random_item(self.all_digits)
        # pick_random_item()
        # 接受一个字符串作为参数随机返回这个字符串中的一个字符

    def special(self):
        return self.pick_random_item(self.all_specials)
        # pick_random_item()
        # 接受一个字符串作为参数随机返回这个字符串中的一个字符

    def anyone(self):
        return self.pick_random_item(self.all_uppercase + self.all_lowercase + self.all_digits + self.all_specials)
         # 将四种字符拼接在一起、形成一个大字符串 
         # 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789~!@#$%^&*',然后调用 pick_random_item 方法从中随机取出一个字符。
         # pick_random_item()
         # 接受一个字符串作为参数随机返回这个字符串中的一个字符

本文链接: http://www.dtmao.cc/news_show_2000323.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?