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中变量的作用域
Jun 16 Python
Python实现统计文本文件字数的方法
May 05 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
Jan 22 Python
用Python从0开始实现一个中文拼音输入法的思路详解
Jul 20 Python
python实现ip地址查询经纬度定位详解
Aug 30 Python
用python写测试数据文件过程解析
Sep 25 Python
python 遗传算法求函数极值的实现代码
Feb 11 Python
Python如何实现小程序 无限求和平均
Feb 18 Python
Spark处理数据排序问题如何避免OOM
May 21 Python
TensorFlow-gpu和opencv安装详细教程
Jun 30 Python
opencv 阈值分割的具体使用
Jul 08 Python
利用python做表格数据处理
Apr 13 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的简易冒泡法代码分享
2012/08/28 PHP
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
2013/08/06 PHP
php中mysql操作buffer用法详解
2015/03/19 PHP
在Windows系统下使用PHP生成Word文档的教程
2015/07/03 PHP
thinkPHP3.2简单实现文件上传的方法
2016/05/16 PHP
php成功操作redis cluster集群的实例教程
2019/01/13 PHP
PHP Include文件实例讲解
2019/02/15 PHP
Jquery+JSon 无刷新分页实现代码
2010/04/01 Javascript
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
2012/09/14 Javascript
JS画线(实例代码)
2013/11/20 Javascript
如何设置一定时间内只能发送一次请求
2014/02/28 Javascript
jquery中获取元素里某一特定子元素的代码
2014/12/02 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
2015/11/21 Javascript
js判断鼠标位置是否在某个div中的方法
2016/02/26 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
jQuery图片轮播插件——前端开发必看
2016/05/31 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
2016/06/30 Javascript
js/jq仿window文件夹移动/剪切/复制等操作代码
2017/03/08 Javascript
使用JS动态显示文本
2017/09/09 Javascript
Vue.js 实现微信公众号菜单编辑器功能(二)
2018/05/08 Javascript
JavaScript中十种一步拷贝数组的方法实例详解
2019/04/22 Javascript
JavaScript大数相加相乘的实现方法实例
2020/10/18 Javascript
React服务端渲染原理解析与实践
2021/03/04 Javascript
用python代码做configure文件
2014/07/20 Python
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
Python基于百度AI的文字识别的示例
2018/04/21 Python
会计专业自荐信范文
2013/12/02 职场文书
技校毕业生的自我评价
2013/12/27 职场文书
班干部竞选演讲稿
2014/04/24 职场文书
机电一体化专业毕业生自荐信
2014/06/19 职场文书
博士导师推荐信
2015/03/25 职场文书
素质教育培训心得体会
2016/01/19 职场文书
python基础之匿名函数详解
2021/04/21 Python
Oracle设置DB、监听和EM开机启动的方法
2021/04/25 Oracle
python tkinter Entry控件的焦点移动操作
2021/05/22 Python
python中如何对多变量连续赋值
2021/06/03 Python