Python:控制台输入密码passwod的方法

编程入门 行业动态 更新时间:2024-10-24 16:31:05

Python:<a href=https://www.elefans.com/category/jswz/34/1771374.html style=控制台输入密码passwod的方法"/>

Python:控制台输入密码passwod的方法

目录

    • input
    • getpass
    • termios
    • msvcrt

input

print(input("please input: "))
$ python3 demo.py 
please input: 123456
123456

缺点:不安全

getpass

import getpassprint(getpass.getpass("please input: "))
$ python3 demo.py 
please input: 
123456

缺点:看不到输入的位数

termios

import sys, tty, termios def getch():  fd = sys.stdin.fileno() old_settings = termios.tcgetattr(fd) try: tty.setraw(sys.stdin.fileno()) ch = sys.stdin.read(1) finally: termios.tcsetattr(fd, termios.TCSADRAIN, old_settings) return chdef getpass(maskchar = "*"): password = "" while True: ch = getch() if ch == "\r" or ch == "\n": print return password elif ch == "\b" or ord(ch) == 127: if len(password) > 0: sys.stdout.write("\b \b") password = password[:-1] else: if maskchar != None: sys.stdout.write(maskchar) password += ch if __name__ == "__main__": print ("Enter your password:",)password = getpass("*") print ("your password is %s" %password)
$ python3 demo.py 
Enter your password:
******
your password is 123456

缺点:该方法仅在Linux上使用

msvcrt

import msvcrt,sysdef 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) )  if __name__ == "__main__": print("Please input your password:")pwd = pwd_input()  print("\nyour password is:{0}".format(pwd))sys.exit()

缺点:仅在Windows上使用

参考

  • Python之控制台输入密码的方法

更多推荐

Python:控制台输入密码passwod的方法

本文发布于:2023-12-03 07:12:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1652523.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:控制台   输入密码   方法   Python   passwod

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!