如何用python制作简单的密码输入和信息防泄露?如何创建进度条?这里用51行代码给你全部综合示例。

总言

这是一个 Python 程序,主要实现了一个信息防泄密的功能,用户需要输入特定的密码才能正确显示信息 x。

简介

程序中用到了 getpasstqdm 两个库。getpass 库可以让用户输入密码时不显示密码的明文,而是显示 * 号等符号。tqdm 库可以方便地创建进度条。

程序开头先读入信息 x 和加密密码 a,并设置了一个密码输入最大次数的变量 password_max_try

细节

程序主要分为两个部分:第一部分是询问用户意图,如果用户选择退出程序,则程序结束;如果用户选择显示信息 x,则需要输入密码 b。如果密码 b 和加密密码 a 相同,则可以正确显示信息 x,否则需要重新输入密码 b,用户最多只有 password_max_try 次机会输入正确的密码。当密码输入错误次数超过最大次数时,程序自动锁定信息,终止程序。第二部分是显示进度条和信息 x。

整个程序的逻辑比较简单,主要是面向过程的编程方式,代码比较易读。

示例

import getpass
from tqdm import tqdm
import time

# 读入信息x
x = getpass.getpass(prompt="请输入信息x: ", stream=None)
print("保护程序,请勿点击,再次警告" * 100)

# 读入加密密码a
a = getpass.getpass(prompt="请输入加密密码a: ", stream=None)

# 定义密码输入最大次数
password_max_try = 3

while True:

    # 询问用户意图
    choice = input("请输入要执行的操作(1-显示信息x,2-退出): ")

    if choice == '1':
        b = getpass.getpass(prompt="请输入密码b: ", stream=None)

        if b == a:
            print("密码正确,正在显示信息x:")
            password_correct = True

            # 创建进度条
            for i in tqdm(range(100)):
                time.sleep(0.1)

            if password_correct:
                print("信息x: %s" % x)

            # 成功显示信息,退出程序
            break

        else:
            password_max_try -= 1
            if password_max_try == 0:
                print("密码输入错误次数过多,自动锁定信息")
                break
            else:
                print("密码错误,请重新输入,你还有%s次机会" % password_max_try)

    elif choice == '2':
        # 选择退出程序
        break

    else:
        # 选择无效
        print("无效的选择,请重新输入。")

       

注解

# 导入 getpass 和 tqdm 两个库
import getpass
from tqdm import tqdm
import time

# 读入信息 x
x = getpass.getpass(prompt="请输入信息 x: ", stream=None)

# 重复输出警告
print("保护程序,请勿点击,再次警告" * 100)

# 读入加密密码 a
a = getpass.getpass(prompt="请输入加密密码 a: ", stream=None)

# 定义密码输入最大次数
password_max_try = 3

# 进入循环
while True:
    # 询问用户意图
    choice = input("请输入要执行的操作(1-显示信息 x,2-退出): ")
    
    if choice == '1':  # 如果用户选择显示信息 x
        # 读入密码 b
        b = getpass.getpass(prompt="请输入密码 b: ", stream=None)
        # 判断密码 b 是否正确
        if b == a:  # 如果密码 b 正确
            print("密码正确,正在显示信息 x:")
            password_correct = True  # 设定密码正确标志为 True

            # 创建进度条
            for i in tqdm(range(100)):
                time.sleep(0.1)

            # 显示信息 x
            if password_correct:
                print("信息 x: %s" % x)

            # 成功显示信息,退出程序
            break
        else:  # 如果密码 b 不正确
            password_max_try -= 1  # 最大尝试次数减 1
            if password_max_try == 0:  # 如果最大尝试次数用完了
                print("密码输入错误次数过多,自动锁定信息")
                break  # 终止程序
            else:
                print("密码错误,请重新输入,你还有 %s 次机会" % password_max_try)
    elif choice == '2':  # 如果用户选择退出程序
        # 选择退出程序
        break  # 终止程序
    else:  # 如果用户选择了无效的操作
        # 提醒用户重新输入
        print("无效的选择,请重新输入。")

以上是 Python 程序的完整原文,程序逻辑比较清晰,部分代码的解释如下:

getpass:这个库可以让用户输入密码时不显示密码的明文,而是显示 * 号等符号,常用于增强密码的安全性。
tqdm:这个库可以方便地创建进度条,用于显示程序运行的进度和剩余时间等信息。
x:表示输入的信息,使用 getpass 获取,可以保证输入的内容安全。
a:表示加密密码,也是通过 getpass 获取,这里假设用户输入了一个密码,用于加密信息 x。
password_max_try:密码输入最大次数,这里设置为 3,表示用户最多只能输入 3 次密码。
while True::进入循环,保证程序可以一直运行下去。
input():读取用户输入的操作,根据不同的操作分别执行不同的代码段。
break:可以跳出循环,即使在循环的过程中。
tqdm(range(100)):创建进度条,使用 range(100) 表示进度条范围为 0 到 99,其中 sleep() 函数用于控制进度条的速度。
if password_correct::这个条件为真时会输出信息 x,它是在循环中定义的,只有在密码 b 正确的情况下才将这个条件设为 True。

注:程序部分细节问题需要根据实际需求进行调整和完善,这里仅是提供一个基本的思路和代码实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值