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 mysqldb连接数据库
Mar 16 Python
pycharm 使用心得(四)显示行号
Jun 05 Python
利用Python获取操作系统信息实例
Sep 02 Python
python3爬取各类天气信息
Feb 24 Python
python中pika模块问题的深入探究
Oct 13 Python
python pygame模块编写飞机大战
Nov 20 Python
python3通过selenium爬虫获取到dj商品的实例代码
Apr 25 Python
python异常处理之try finally不报错的原因
May 18 Python
python中reload重载实例用法
Dec 15 Python
Matlab求解数组中的最大值及它所在的具体位置
Apr 16 Python
Python排序算法之插入排序及其优化方案详解
Jun 11 Python
Python 视频画质增强
Apr 28 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汉字转拼音的示例
2014/02/27 PHP
VSCode+PHPstudy配置PHP开发环境的步骤详解
2020/08/20 PHP
js url传值中文乱码之解决之道
2009/11/20 Javascript
JavaScript中各种编码解码函数的区别和注意事项
2010/08/19 Javascript
js与jquery实时监听输入框值的oninput与onpropertychange方法
2015/02/05 Javascript
JavaScript获取表单内所有元素值的方法
2015/04/02 Javascript
jquery实现两个图片渐变切换效果的方法
2015/06/25 Javascript
jQuery蓝色风格滑动导航栏代码分享
2015/08/19 Javascript
Javascript获取数组中的最大值和最小值的方法汇总
2016/01/01 Javascript
Vue.js绑定HTML class数组语法错误的原因分析
2016/10/19 Javascript
jQuery remove()过滤被删除的元素(推荐)
2017/07/18 jQuery
常用的9个JavaScript图表库详解
2017/12/19 Javascript
详解vantUI框架在vue项目中的应用踩坑
2018/12/06 Javascript
前端面试知识点目录一览
2019/04/15 Javascript
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
jQuery实现获取多选框的值示例
2020/02/07 jQuery
webpack中的模式(mode)使用详解
2020/02/20 Javascript
[02:38]DOTA2超级联赛专访Loda 认为IG世界最强
2013/05/27 DOTA
Django基于ORM操作数据库的方法详解
2018/03/27 Python
Python获取二维矩阵每列最大值的方法
2018/04/03 Python
Python多进程池 multiprocessing Pool用法示例
2018/09/07 Python
Python选择网卡发包及接收数据包
2019/04/04 Python
详解python 降级到3.6终极解决方案
2020/02/06 Python
python-docx文件定位读取过程(尝试替换)
2020/02/13 Python
美国在线购买内衣网站:HerRoom
2020/02/22 全球购物
super()与this()的区别
2016/01/17 面试题
大学生应聘自荐信
2013/10/11 职场文书
新闻编辑自荐信
2013/11/03 职场文书
行政人事专员岗位职责
2014/03/05 职场文书
公务员个人总结
2015/02/12 职场文书
护士求职简历自我评价
2015/03/10 职场文书
办公室规章制度范本
2015/08/04 职场文书
react中的DOM操作实现
2021/06/30 Javascript
python读取mnist数据集方法案例详解
2021/09/04 Python
基于PyQt5制作一个群发邮件工具
2022/04/08 Python
MySQL查询日期时间
2022/05/15 MySQL