Python实现控制台输入密码的方法


Posted in Python onMay 29, 2015

本文实例讲述了Python实现控制台输入密码的方法。分享给大家供大家参考。具体如下:

1. raw_input() :

pwd = raw_input('password: ')
print pwd
# password: aaa
# aaa

Note: 最简单的方法,但是不安全

2. getpass.getpass() :

import getpass
pwd = getpass.getpass('password: ')
print pwd
# password:
# aaaa

Note: 很安全,但是看不到输入的位数,会让人觉得有点不习惯,不知道的还以为没有在输入..

3. msvcrt.getch() :

代码如下:

import msvcrt, sys
def pwd_input():
  chars = []
  while True:
    newChar = msvcrt.getch()
    if newChar in '\r\n':
    # 如果是换行,则输入结束
      print ''
      break
    elif newChar == '\b':
    # 如果是退格,则删除末尾一位
      if chars:
        del chars[-1]
        sys.stdout.write('\b')
        # 删除一个星号,但是不知道为什么不能执行...
    else:
      chars.append(newChar)
      sys.stdout.write('*')
      # 显示为星号
  print ''.join(chars)
pwd = pwd_input()
print pwd
# ******
# aaaaaa

Note: 解决了第二种方法不能显示输入位数的问题,但是如果按退格键(backspace)的话,虽然实际的是退格了,

但控制台却没有显示相应的退格,比如,当前输入是:abcd,显示为:****,然后现在打一个退格键,实际

输入为:abc,而显示仍为:****。不知道为什么 sys.stdout.write('\b') 这行没有执行,估计是和使用msvcrt.getch()有关系。感兴趣的朋友可以进一步研究一下。

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python安装以及IDE的配置教程
Apr 29 Python
Python发送以整个文件夹的内容为附件的邮件的教程
May 06 Python
Python二分查找详解
Sep 13 Python
python3+PyQt5实现柱状图
Apr 24 Python
python快速编写单行注释多行注释的方法
Jul 31 Python
Kears+Opencv实现简单人脸识别
Aug 28 Python
Python爬取豆瓣视频信息代码实例
Nov 16 Python
Pytorch高阶OP操作where,gather原理
Apr 30 Python
Python logging模块handlers用法详解
Aug 14 Python
matplotlib部件之套索Lasso的使用
Feb 24 Python
python3 sqlite3限制条件查询的操作
Apr 07 Python
python中print格式化输出的问题
Apr 16 Python
python删除过期文件的方法
May 29 #Python
Python的Django框架中TEMPLATES项的设置教程
May 29 #Python
编写Python脚本把sqlAlchemy对象转换成dict的教程
May 29 #Python
Python fileinput模块使用实例
May 28 #Python
Python sys.argv用法实例
May 28 #Python
Python中exit、return、sys.exit()等使用实例和区别
May 28 #Python
Python中的with...as用法介绍
May 28 #Python
You might like
提高PHP编程效率的方法
2013/11/07 PHP
PHP字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
php数据访问之增删改查操作
2016/05/09 PHP
php微信公众平台示例代码分析(二)
2016/12/06 PHP
JQuery 返回布尔值Is()条件判断方法代码
2012/05/14 Javascript
Jquery Uploadify上传带进度条的简单实例
2014/02/12 Javascript
通过js为元素添加多项样式,浏览器全兼容写法
2014/08/30 Javascript
jQuery中:password选择器用法实例
2015/01/03 Javascript
JS+CSS实现大气的黑色首页导航菜单效果代码
2015/09/10 Javascript
使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法
2015/09/16 Javascript
Bootstrap Chart组件使用教程
2016/04/28 Javascript
ajax与json 获取数据并在前台使用简单实例
2017/01/19 Javascript
关于vue.js过渡css类名的理解(推荐)
2017/04/10 Javascript
bootstrap fileinput组件整合Springmvc上传图片到本地磁盘
2017/05/11 Javascript
JavaScript 判断对象中是否有某属性的常用方法
2018/06/14 Javascript
LayUI switch 开关监听 获取属性值、更改状态的方法
2019/09/21 Javascript
react 原生实现头像滚动播放的示例
2020/04/21 Javascript
Python命令行参数解析模块optparse使用实例
2015/04/13 Python
python获取一组数据里最大值max函数用法实例
2015/05/26 Python
tensorflow TFRecords文件的生成和读取的方法
2018/02/06 Python
Python操作Mongodb数据库的方法小结
2019/09/10 Python
python matplotlib如何给图中的点加标签
2019/11/14 Python
python爬虫请求头的使用
2020/12/01 Python
requests在python中发送请求的实例讲解
2021/02/17 Python
标签和贴纸印刷:Lightning Labels
2018/03/22 全球购物
英国领先的鞋类零售商和顶级品牌的官方零售商:Wynsors
2020/02/17 全球购物
adidas泰国官网:adidas TH
2020/07/11 全球购物
求职简历中的自我评价分享
2013/12/08 职场文书
机电专业求职信
2014/06/14 职场文书
赵乐秦在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
党员廉洁自律个人总结
2015/02/13 职场文书
小学公民道德宣传日活动总结
2015/03/23 职场文书
房地产工程部经理岗位职责
2015/04/09 职场文书
安全知识竞赛主持词
2015/06/30 职场文书
MySql存储过程之逻辑判断和条件控制
2021/05/26 MySQL
Python利用FlashText算法实现替换字符串
2022/03/31 Python