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进行稳定可靠的文件操作详解
Dec 31 Python
[原创]使用豆瓣提供的国内pypi源
Jul 02 Python
Python面向对象之静态属性、类方法与静态方法分析
Aug 24 Python
利用pyecharts实现地图可视化的例子
Aug 12 Python
Django项目中实现使用qq第三方登录功能
Aug 13 Python
阿里云ECS服务器部署django的方法
Aug 29 Python
Pytorch保存模型用于测试和用于继续训练的区别详解
Jan 10 Python
利用python实现凯撒密码加解密功能
Mar 31 Python
Matlab中plot基本用法的具体使用
Jul 17 Python
python 根据列表批量下载网易云音乐的免费音乐
Dec 03 Python
浅谈Python列表嵌套字典转化的问题
Apr 07 Python
Python PIL按比例裁剪图片
May 11 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的autoLoad自动加载机制
2012/09/27 PHP
一个基于phpQuery的php通用采集类分享
2014/04/09 PHP
javascript 节点排序 2
2011/01/31 Javascript
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
2012/02/16 Javascript
js隐藏与显示回到顶部按钮及window.onscroll事件应用
2013/01/25 Javascript
jquery实现图片裁剪思路及实现
2013/08/16 Javascript
jQuery.Highcharts.js绘制柱状图饼状图曲线图
2015/03/14 Javascript
javascript HTML5文件上传FileReader API
2020/03/27 Javascript
iScroll.js 使用方法参考
2016/05/16 Javascript
js实现导航栏中英文切换效果
2017/01/16 Javascript
Angular 2父子组件数据传递之@Input和@Output详解 (上)
2017/07/05 Javascript
微信小程序 上传头像的实例详解
2017/10/27 Javascript
layui使用数据表格实现购物车功能
2019/07/26 Javascript
微信小程序表单验证WxValidate的使用
2019/11/27 Javascript
bootstrap实现tab选项卡切换
2020/08/09 Javascript
使用Python脚本操作MongoDB的教程
2015/04/16 Python
基于wxpython实现的windows GUI程序实例
2015/05/30 Python
python构建基础的爬虫教学
2018/12/23 Python
Python如何使用BeautifulSoup爬取网页信息
2019/11/26 Python
浅谈keras中自定义二分类任务评价指标metrics的方法以及代码
2020/06/11 Python
selenium3.0+python之环境搭建的方法步骤
2021/02/01 Python
Python解析m3u8拼接下载mp4视频文件的示例代码
2021/03/03 Python
来自Ocado的宠物商店:Fetch
2018/07/10 全球购物
Godiva巧克力英国官网:比利时歌帝梵巧克力
2018/08/28 全球购物
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2015/09/07 面试题
药剂学专业应届生自荐信
2013/09/29 职场文书
会计实习生自我鉴定
2013/12/12 职场文书
教师自我反思材料
2014/02/14 职场文书
安全生产演讲稿
2014/05/09 职场文书
人大调研汇报材料
2014/08/14 职场文书
大一新生检讨书
2014/10/29 职场文书
银行竞聘报告范文
2014/11/06 职场文书
大学生自我推荐信范文
2015/03/24 职场文书
联欢会开场白
2015/06/01 职场文书
2015少先队大队辅导员工作总结
2015/07/24 职场文书
MySQL系列之十一 日志记录
2021/07/02 MySQL