04 - Python命令行输入时隐藏输入信息(常用于输入密码)

当python程序需要配置密码时,密码部分防止泄露,所以需要进行加密。

import msvcrt
def pwd_input():
    """
    输入信息加密
    """
    chars = []
    while True:
        try:
            newChar = msvcrt.getch().decode(encoding="utf-8")
        except:
            return input("你很可能不是在cmd命令行下运行,密码输入将不能隐藏:")
        # 换行 -- 输入结束
        if newChar in '\r\n': 
             break
        # 如果是退格,则删除密码末尾一位并且删除一个星号
        elif newChar == '\b': # 如果是退格,则删除密码末尾一位并且删除一个星号
             if chars:
                 del chars[-1]
                 # 光标回退一格
                 msvcrt.putch('\b'.encode(encoding='utf-8')) 
                 # 输出一个空格覆盖原来的星号
                 msvcrt.putch( ' '.encode(encoding='utf-8')) 
                 # 光标回退一格准备接受新的输入
                 msvcrt.putch('\b'.encode(encoding='utf-8')) 
        else:
            chars.append(newChar)
            # 命令行中显示为星号
            msvcrt.putch('*'.encode(encoding='utf-8')) 
    # 返回真实信息
    return (''.join(chars))

注:以上代码只适用于在命令行中运行输入,不支持在IDE中使用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值