【Python 百练成钢】使用Python实现密码登录器

简介: 【Python 百练成钢】使用Python实现密码登录器

前言


使用Python实现一个黑窗口加密输入字符串的插件。

可以将他封装在函数内,调用函数返回输入的字符串。

具体效果如下:


99b44bae16d44130a11543e486be47d4.png


可以实现回删。


实现思路(会不会python都可以看):


接受输入字符(接收的时候必须无回显)可以使用getch()

判断接收的字符是不是回车(\n)【回车预示着输入密码结束】

判断字符是不是删除键(\b)

【是\b的话需要回退光标,并删除原来位置上的数据,其他语言可以对该位置赋初值】

其他字符打印*并将数据加入所要返回的列表内


介绍几点代码中可能会起疑惑的点


getch :这个getch与c\c++中的还有些不一样,这个得到的是一个字节码,需要解码才能得到字符串。

\b \b :都知道\b是ASCII表中的退格键他对应的值为8,所以在输入的时候使用ord()进行了转换

\b是退格,那么\b \b就是使用空格将原来的字符覆盖后再将光标移到原来的位置。

sys.stdout.flush() :如果不加这一句话输入密码的时候只有按回车键才会显示出来,也就是没

有办法同步显示*或者删除*,加上这句的意思就是刷新缓冲区。具体为什么我也不是很清楚,之前写c++小项目的时候偶尔会有这种情况,刷新一下缓冲区就好了,所以在碰到这种问题的时候我首先想到了刷新缓冲区。

其他的应该大家都会了,毕竟会python的多少会点逻辑的处理。(代码放在下方了)


源代码


from msvcrt import getch
import sys
sys.stdout.write("请输入您的密码:")
sys.stdout.flush()
passwd=[]
while True:
    n=getch().decode()
    if ord(n)==13:
        break
    else:
        if ord(n)==8 and len(passwd)!=0:
            print('\b \b',end="")
            passwd.pop()
        elif ord(n)==8 and len(passwd)==0:
            pass
        else:
            print('*',end="")
            passwd.append(n)
    sys.stdout.flush()
print()
print(passwd)



相关文章
|
1月前
|
测试技术 API 数据安全/隐私保护
Python连接到Jira实例、登录、查询、修改和创建bug
通过使用Python和Jira的REST API,可以方便地连接到Jira实例并进行各种操作,包括查询、修改和创建Bug。`jira`库提供了简洁的接口,使得这些操作变得简单易行。无论是自动化测试还是开发工作流的集成,这些方法都可以极大地提高效率和准确性。希望通过本文的介绍,您能够更好地理解和应用这些技术。
103 0
|
3月前
|
供应链 数据挖掘 数据处理
聚合数据,洞察未来!Python聚合术,解锁数据背后的商业密码!
在数据泛滥的时代,数据聚合成为企业决策的关键。它通过整合不同来源的数据,揭示隐藏规律与趋势,为科学决策提供依据。Python凭借其丰富的库如Pandas和NumPy,在数据聚合中表现出色,简化了数据处理流程。通过示例展示了如何使用Pandas对销售数据进行聚合分析,帮助企业优化库存管理、调整策略,预测需求,在竞争中脱颖而出。
51 5
|
3月前
|
存储 安全 算法
RSA在手,安全我有!Python加密解密技术,让你的数据密码坚不可摧
【9月更文挑战第11天】在数字化时代,信息安全至关重要。传统的加密方法已难以应对日益复杂的网络攻击。RSA加密算法凭借其强大的安全性和广泛的应用场景,成为保护敏感数据的首选。本文介绍RSA的基本原理及在Python中的实现方法,并探讨其优势与挑战。通过使用PyCryptodome库,我们展示了RSA加密解密的完整流程,帮助读者理解如何利用RSA为数据提供安全保障。
137 5
|
3月前
|
安全 数据安全/隐私保护 Python
情书也能加密?Python AES&RSA,让每一份数据都充满爱的密码
【9月更文挑战第8天】在这个数字化时代,情书不再局限于纸笔,也可能以电子形式在网络中传递。为了确保其安全,Python提供了AES和RSA等加密工具,为情书编织爱的密码。首先,通过安装pycryptodome库,我们可以利用AES对称加密算法高效保护数据;接着,使用RSA非对称加密算法加密AES密钥和IV,进一步增强安全性。即使情书被截获,没有正确密钥也无法解读内容。让我们用Python为爱情编织一张安全的网,守护每份珍贵情感。
51 2
|
4月前
|
数据采集 Python
如何用Python Selenium和WebDriver抓取LinkedIn数据并保存登录状态
本文介绍了使用Python Selenium和WebDriver库抓取LinkedIn数据的方法。首先,安装Selenium库和对应的WebDriver,然后配置爬虫代理IP以避免频繁请求被检测。接下来,设置user-agent和cookies以模拟真实用户行为,实现登录并保持状态。登录后,使用WebDriver抓取目标页面数据,如用户名、年龄、性别和简历信息。最后,强调了优化代码、处理异常和遵守使用条款的重要性,以提高效率并避免账号被封禁。
106 2
如何用Python Selenium和WebDriver抓取LinkedIn数据并保存登录状态
|
4月前
|
存储 前端开发 数据库
基于python flask 的图书管理系统,有登录界面,实现简单增删改查,可以做课程设计使用
本文介绍了一个基于Python Flask框架的图书管理系统,该系统具备登录界面,并实现了基本的增删改查功能,适合作为课程设计使用。
基于python flask 的图书管理系统,有登录界面,实现简单增删改查,可以做课程设计使用
|
4月前
|
监控 数据可视化 前端开发
基于python django的电商数据分析系统,包括大屏和登录
本文介绍了一个基于Python Django框架开发的电商数据分析系统,该系统具备大屏展示功能和用户登录机制,旨在帮助电商企业实时监控和分析销售数据,支持多维度数据分析和趋势预测。
基于python django的电商数据分析系统,包括大屏和登录
|
4月前
|
数据采集 存储 数据可视化
基于python django的智联招聘数据采集与分析系统,有登录注册,可自主选择采集内容
本文介绍了一个基于Python Django框架的智联招聘数据采集与分析系统,该系统具备登录注册功能,允许用户自主选择采集内容,并通过对数据的分析和可视化展示,帮助企业和招聘者优化招聘策略。
基于python django的智联招聘数据采集与分析系统,有登录注册,可自主选择采集内容
|
4月前
|
数据采集 数据可视化 数据挖掘
基于python django的scrapy去哪儿网数据采集与分析,包括登录注册和可视化大屏,有md5加密
本文介绍了一个基于Python和Django框架,使用Scrapy进行去哪儿网数据采集与分析的项目,包括实现登录注册功能、MD5加密以及通过可视化大屏展示分析结果的综合系统。
基于python django的scrapy去哪儿网数据采集与分析,包括登录注册和可视化大屏,有md5加密
|
4月前
|
数据安全/隐私保护 Python
Python 解压还密码的压缩文件 LookupError: Couldn't find path to unrar library.
Python 解压还密码的压缩文件 LookupError: Couldn't find path to unrar library.
74 2