栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

C-实现终端输入五角星的密码

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C-实现终端输入五角星的密码

最近要不是客户提了1个很繁琐的需求,恐怕就没有这篇文章了。
原先编写的终端获取密码的方法是使用linux下的getpass函数来实现,该函数原型如下:

#include 
char *getpass(const char *prompt);

该函数有个不好的地方就是输入的密码不回显,根本不知道输入了多少位的密码。
于是提出了希望可以将输入的密码回显为密文的形式,比如1个星号或圆心。
不得不说这是1个很让人难以拒绝的要求,只好硬着头脑看下能不能实现。
另外,还要求能够支持跨平台,需要支持Windows和Linux主流操作系统。
后来发现,对于Windows可以利用conio.h头的_getch函数,而不是getch函数,因为后者在Visual Studio 2015中已经淘汰了,不建议使用了。为了安全考虑,于是选择了函数。
对于Linux,可以考虑使用termios.h下的termios结构体来完成对应的操作,该结构体已经是上个世界80年代的产物了,基本属于很久的技术了。
最终将写好的程序集成到Python 3中,可以使用下面的方式进行安装:

pip3 install terminal-password

安装完成后,使用下面的方式进行调用:

import terminal_password as password
b = password.get_password(u'u2605')

函数get_password接收1个Unicode的字符,用于表示对应输出的符号。这里我们的五角星★的Unicode码是u2605,当然也可以根据需要选择需要的符号。默认情况使用的是星号*进行输出。
下面是在Windows下的实际示例:
可以看到整个过程丝般顺畅,无论是按下BackSpace键还是输入密码的过程。
这样,总算让客户满意了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/674792.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号