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的绘图工具matplotlib使用实例
Jul 03 Python
在Python中操作文件之truncate()方法的使用教程
May 25 Python
Python中的字典与成员运算符初步探究
Oct 13 Python
python中文乱码不着急,先看懂字节和字符
Dec 20 Python
python 字典中取值的两种方法小结
Aug 02 Python
python使用xlrd模块读取xlsx文件中的ip方法
Jan 11 Python
Windows系统Python直接调用C++ DLL的方法
Aug 01 Python
Python Django2.0集成Celery4.1教程
Nov 19 Python
pycharm激活码有效到2020年11月底
Sep 18 Python
Python中import导入不同目录的模块方法详解
Feb 18 Python
Python Switch Case三种实现方法代码实例
Jun 18 Python
Python图像处理二值化方法实例汇总
Jul 24 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中ini_set与ini_get用法实例
2014/11/04 PHP
PHP7.0安装笔记整理
2015/08/28 PHP
WordPress中使主题支持小工具以及添加插件启用函数
2015/12/22 PHP
深入浅析安装PhpStorm并激活的步骤详解
2020/09/17 PHP
8个实用的jQuery技巧
2014/03/04 Javascript
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
浅谈jQuery事件绑定原理
2015/01/02 Javascript
js一维数组、多维数组和对象的混合使用方法
2016/04/03 Javascript
zTree插件下拉树使用入门教程
2016/04/11 Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
2017/02/04 Javascript
jQuery获取table下某一行某一列的值实现代码
2017/04/07 jQuery
Chart.js 轻量级HTML5图表绘制工具库(知识整理)
2018/05/22 Javascript
超出JavaScript安全整数限制的数字计算BigInt详解
2018/06/24 Javascript
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
2019/06/04 jQuery
Vue中computed及watch区别实例解析
2020/08/01 Javascript
jQuery实现朋友圈查看图片
2020/09/11 jQuery
PyCharm使用教程之搭建Python开发环境
2016/06/07 Python
使用rst2pdf实现将sphinx生成PDF
2016/06/07 Python
Python 对象中的数据类型
2017/05/13 Python
python3个性签名设计实现代码
2018/06/19 Python
Python爬虫学习之获取指定网页源码
2019/07/30 Python
python爬虫selenium和phantomJs使用方法解析
2019/08/08 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
2020/01/09 Python
利用Python脚本实现自动刷网课
2020/02/03 Python
django ListView的使用 ListView中获取url中的参数值方式
2020/03/27 Python
使用python+poco+夜神模拟器进行自动化测试实例
2020/04/23 Python
Autopep8的使用(python自动编排工具)
2021/03/02 Python
一套比较完整的软件测试人员面试题
2012/05/13 面试题
房屋转让协议书范本
2014/04/11 职场文书
精神文明建设先进工作者事迹材料
2014/05/02 职场文书
球队口号
2014/06/18 职场文书
学习教师敬业奉献模范事迹材料思想汇报
2014/09/19 职场文书
奖学金感谢信
2015/01/21 职场文书
爱心捐款活动总结
2015/05/09 职场文书
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python
分位数回归模型quantile regeression应用详解及示例教程
2021/11/02 Python