Python getpass 输入密码

Python有个自带的getpass模块:

  1. import getpass  
  2. password = getpass.getpass('Enter password: ')  
  3. print password  

 

 

该模块继承了UNIX下的一贯风格,输入密码不回显屏蔽符。

 

如果需要显示屏蔽符以提示自己确实正在输入密码的话,可以使用下面的模块:

  1. import sys, tty, termios  
  2. def getch():  
  3.   fd = sys.stdin.fileno()  
  4.   old_settings = termios.tcgetattr(fd)  
  5.   try:  
  6.     tty.setraw(sys.stdin.fileno())  
  7.     ch = sys.stdin.read(1)  
  8.   finally:  
  9.     termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)  
  10.   return ch  
  11. def getpass(maskchar = "*"):  
  12.   password = ""  
  13.   while True:  
  14.     ch = getch()  
  15.     if ch == "/r" or ch == "/n":  
  16.       print  
  17.       return password  
  18.     elif ch == "/b" or ord(ch) == 127:  
  19.       if len(password) > 0:  
  20.         sys.stdout.write("/b /b")  
  21.         password = password[:-1]  
  22.     else:  
  23.       if maskchar != None:  
  24.         sys.stdout.write(maskchar)  
  25.       password += ch  
  26. if __name__ == "__main__":  
  27.   print "Enter password:",  
  28.   password = getpass("*")  
  29.   print password  

 

 

当getpass的参数为None时不回显屏蔽符号,否则显示指定的屏蔽符号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值