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检测QQ在线状态的方法
May 09 Python
浅谈Python数据类型之间的转换
Jun 08 Python
python实现自主查询实时天气
Jun 22 Python
python实现决策树分类
Aug 30 Python
python 实现矩阵上下/左右翻转,转置的示例
Jan 23 Python
python 实现简单的FTP程序
Dec 27 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
Mar 01 Python
python shapely.geometry.polygon任意两个四边形的IOU计算实例
Apr 12 Python
Python super()函数使用及多重继承
May 06 Python
使用python实现时间序列白噪声检验方式
Jun 03 Python
Django启动时找不到mysqlclient问题解决方案
Nov 11 Python
python 调整图片亮度的示例
Dec 03 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 批量更新网页内容实现代码
2010/01/05 PHP
php 函数中使用static的说明
2012/06/01 PHP
php中把美国时间转为北京时间的自定义函数分享
2014/07/28 PHP
让你的PHP7更快之Hugepage用法分析
2016/05/31 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
2018/08/10 PHP
用js+xml自动生成表格的东西
2006/12/21 Javascript
键盘 keycode的值 javascript时触发事件时很有用的要素
2009/11/02 Javascript
js中的string.format函数代码
2020/08/11 Javascript
JS实现字体选色板实例代码
2013/11/20 Javascript
JavaScript中switch判断容易犯错的一个细节
2014/08/27 Javascript
JavaScript File API实现文件上传预览
2016/02/02 Javascript
JS实现消息来时让网页标题闪动效果的方法
2016/04/20 Javascript
js删除数组元素、清空数组的简单方法(必看)
2016/07/27 Javascript
原生javascript实现图片放大镜效果
2017/01/18 Javascript
微信小程序中button组件的边框设置的实例详解
2017/09/27 Javascript
vue引入js数字小键盘的实现代码
2018/05/14 Javascript
学习使用ExpressJS 4.0中的新Router的用法
2018/11/06 Javascript
Vue 的双向绑定原理与用法揭秘
2020/05/06 Javascript
解决vue项目运行提示Warnings while compiling.警告的问题
2020/09/18 Javascript
python中ASCII码字符与int之间的转换方法
2018/07/09 Python
使用Python对Dicom文件进行读取与写入的实现
2020/04/20 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
Html5实现首页动态视频背景的示例代码
2019/09/25 HTML / CSS
巴西网上药房:onofre
2016/11/21 全球购物
美国在线奢侈品寄售商店:Luxury Garage Sale
2018/08/19 全球购物
Linux上比较文件的命令都有哪些
2012/02/24 面试题
某公司面试题
2012/03/05 面试题
迟到检讨书800字
2014/01/13 职场文书
大专会计自我鉴定
2014/02/06 职场文书
2014年秋季开学典礼致辞
2014/08/02 职场文书
2014年机关党委工作总结
2014/12/11 职场文书
小学校长个人总结
2015/03/03 职场文书
老乡聚会通知
2015/04/23 职场文书
2015年大学班级工作总结
2015/04/28 职场文书
2016年“6.26”禁毒宣传月系列活动总结
2016/04/05 职场文书
豆瓣2021评分最高动画剧集-豆瓣评分最高的动画剧集2021
2022/03/18 日漫