返回顶部
首页 > 资讯 > 后端开发 > Python >如何在Python中隐藏和加密密码示例详解
  • 436
分享到

如何在Python中隐藏和加密密码示例详解

2024-04-02 19:04:59 436人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录前言maskpass()安装:askpass():advpass():base64()在输入时间内隐藏用户密码总结前言 有多种 python 模块用于隐藏用户输入的密码,其中一个

前言

有多种 python 模块用于隐藏用户输入的密码,其中一个是**maskpass()模块。在 Python 中,借助maskpass()模块和base64()**模块,我们可以在输入时使用星号(*) 隐藏用户的密码,然后借助 base64() 模块可以对其进行加密。

maskpass()

maskpass() 是一个 Python 模块,可用于在输入期间隐藏用户的密码。maskpass() 模块还提供了一种安全的方式来处理程序通过终端与用户交互的密码提示。

安装:

在命令提示符下使用pip安装 maskpass。

pip install maskpass

这些模块有两种类型的功能/方法:

  • askpass()
  • advpass()

askpass():

askpass 使用标准库获取非阻塞输入并返回密码。

import maskpass
pwd = maskpass.askpass()

上述代码执行将以字符串格式返回输入的密码。askpass() 方法中有 2 个可选参数,分别是“提示”和“掩码”。提示的默认值为“输入密码:”,掩码的默认值为星号 (*)。

注意:如果您想用字符串、数字或符号来掩盖您的密码,那么只需在掩码中传递该值。例如,如果你想用井号(#) 屏蔽你的密码,然后在掩码中传递井号,即 mask=”#”,现在当用户输入密码时,该密码将用井号(#) 隐藏。

示例 1:没有在提示中回显用户的密码

# 不回显的用户密码
import maskpass  # 隐藏密码
  
# 屏蔽密码
pwd = maskpass.askpass(mask="")  
print(pwd)

输出:

F:\files>python passWord.py
Enter Password :
haiyong

在上面的例子中,用户的密码在输入密码时没有在提示中回显,因为掩码中分配的值是空的,即掩码=””(无空格),因此密码被隐藏,没有任何字符串、符号。

示例 2:在提示中回显用户的密码

# 回显密码并用井号标签 (#) 屏蔽
import maskpass # importing maskpass library

# prompt msg = Password and
# 用井号(#)屏蔽密码
pwd = maskpass.askpass(prompt="Password:", mask="#")
print(pwd)

输出:

F:\files>python password.py
Password:###############
haiyong

在上面的例子中,用户的密码在输入密码时会在提示中回显,因为掩码中分配的值是hashtag(#)即 mask=”#” 因此当用户输入密码时,它会被隐藏井号(#)。

advpass():

advpass 使用 pynput 获取文本并返回密码。advpass 在控制台和 Spyder 中都可以使用。

import maskpass
pwd = maskpass.advpass()

上面的代码执行也会以字符串格式返回输入的密码。advpass() 方法中有 4 个可选参数,它们是 'prompt'、'mask'、'ide' 和 'suppress'。

  • 这里提示的默认值也是“输入密码:”
  • 掩码的默认值为星号 (*)。
  • 这里ide需要一个布尔值,即 true 或 false,ide 的默认值为False。不需要更改 ide 的值,因为它会自动检查它是在 IDE 还是在终端上运行。
  • suppress还需要一个布尔值,即 true 或 false,仅在 Spyder IDE 中使用。将此设置为 True 可防止将输入传递给系统的其余部分。这可以防止 Spyder 控制台在按下空格键时跳下。抑制的默认值为True。

advpass() 方法有一个显示功能,当按下 Left-Ctrl 键时,它将切换用户输入密码的可见性。再次按 Left-Ctrl 键以屏蔽/隐藏密码。注意:这仅适用于 advpass() 并且需要 pynput。

示例 1:输入密码时不按左 ctrl 键

# 输入密码而不用左 CTRL 键
import maskpass # importing maskpass library

# 屏蔽密码
pwd = maskpass.advpass()
print('Password : ', pwd)

输出:

F:\files>python password.py
Enter Password: ***************
Password : haiyong

在上面的输出中,密码用星号(*)符号隐藏,因为用户没有按下键盘上的左 ctrl 键。

示例 2:在输入密码的同时按下左 ctrl 键:

# 输入密码而不用左 CTRL 键
import maskpass # importing maskpass library

pwd = maskpass.advpass() # masking the password
print('Password : ', pwd)

输出:

F:\files>python password.py
Enter Password: haiyong
Password : haiyong

在上面的输出中,密码没有隐藏,因为用户按下了键盘上的左 ctrl 键。

base64()

base64 编码和解码功能都需要一个类似字节的对象。要将字符串转换为字节,我们必须使用 Python 的内置编码函数对字符串进行编码。主要使用 UTF-8 编码,您也可以使用 'ASCII' 进行编码,但我建议使用 UTF-8 编码。

# encoding the string
string = "haiyong"

# encoding string with utf-8
b = string.encode("UTF-8")
print(b)

输出:

F:\files>python strencode.py 
b'greeksforgreek'

这里b前缀表示该值是一个字节对象。

使用 base64() 模块对字符串进行编码:

要对字符串进行编码,即将字符串转换为字节码,请使用以下方法:

base64.b64encode('string'.encode(“utf-8”))  

使用 base64() 模块解码字节码:

要解码字节码,即将字节码再次转换为字符串,请使用以下方法:

base64.b64decode('byte-code').decode("utf-8")

例子:

# 导入用于编码和解码字符串的 base64 模块
import base64

string = "haiyong"

# 编码字符串
encode = base64.b64encode(string.encode("utf-8"))
print("str-byte : ", encode)

# 解码字符串
decode = base64.b64decode(encode).decode("utf-8")
print("byte-str : ", decode)

输出:

F:\files>python base64.py 
str-byte : b'R3JlZWtzZm9yR3JlZWtz' 
byte-str : haiyong

在上面的例子中,“haiyong”字符串首先使用base64模块编码,即字符串被转换为字节码,然后在base64模块的帮助下再次将字节码解码为其原始字符串,即“haiyong”。

在输入时间内隐藏用户密码

# 使用 maskpass() 隐藏输入的密码并使用 base64() 对其进行加密
import maskpass # to hide the password
import base64 # to encode and decode the password

# 以用户名作为键和密码作为值的字典
dict = {'Rahul': b'cmFodWw=',
		'Sandeep': b'U2FuZGVlcA=='}

# 创建密码的功能
def createpwd():
	print("\n========Create Account=========")
	name = input("Username : ")
	
	# 使用提示 msg 'Password :' 屏蔽密码
	pwd = maskpass.askpass("Password : ")
	
	# 对输入的密码进行编码
	encpwd = base64.b64encode(pwd.encode("utf-8"))

	# 在dict中附加用户名和密码
	dict[name] = encpwd
	# print(dict)

# 登录功能
def sign_in():
	print("\n\n=========Login Page===========")
	name = input("Username : ")
	
	# 使用提示 msg 'Password :' 屏蔽密码
	pwd = maskpass.askpass("Password : ")
	
	# 对输入的密码进行编码
	encpwd = base64.b64encode(pwd.encode("utf-8"))

	# 以用户名作为dict中的键获取密码
	password = dict[name]
	if(encpwd == password):
		print("Successfully logged in.")
	else:
		print("Login Failed")

# 调用函数
createpwd()
sign_in()

输出:

F:\files>python "userLogin.py"
========Create Account=========
Username : haiyong
Password : *****

=========Login Page===========
Username : haiyong
Password : *****
Successfully logged in.

总结

到此这篇关于如何在Python中隐藏和加密密码的文章就介绍到这了,更多相关Python隐藏和加密密码内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 如何在Python中隐藏和加密密码示例详解

本文链接: https://lsjlt.com/news/139796.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何在Python中隐藏和加密密码示例详解
    目录前言maskpass()安装:askpass():advpass():base64()在输入时间内隐藏用户密码总结前言 有多种 Python 模块用于隐藏用户输入的密码,其中一个...
    99+
    2024-04-02
  • 怎么在Python中隐藏和加密密码
    今天小编给大家分享一下怎么在Python中隐藏和加密密码的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前言有多种 Pytho...
    99+
    2023-06-29
  • Android中实现密码的隐藏和显示的示例
    在Android开发中,需要密码的隐藏和显示,下面就和大家分享一下使用方法:xml代码: <LinearLayout android:layout_width="match_parent" android:...
    99+
    2023-05-30
    android 密码 显示
  • html中如何实现密码隐藏显示
    小编给大家分享一下html中如何实现密码隐藏显示,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!html实现密码隐藏显示的方法:首先写好HTML界面标签以及css样...
    99+
    2023-06-15
  • Android实现显示和隐藏密码功能的示例代码
    在前端中我们知道用javascript就可以可以很容易实现,那么在Android中怎么实现这个功能呢? Java代码 package com.example.test2; impo...
    99+
    2024-04-02
  • 在Linux中如何产生和加密解密随机密码
    本篇内容介绍了“在Linux中如何产生和加密解密随机密码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 使用命令 pwgen 来生成一个长度...
    99+
    2023-06-13
  • python实现凯撒密码加密解密的示例代码
    凯撒加密就是通过将字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移,被替换成密文。例如,当偏移量是2的时候,所有的字母B将被替换...
    99+
    2024-04-02
  • 详解如何在Java中加密和解密zip文件
    目录依赖压缩一个文件压缩多个文件压缩一个目录创建一个分割的压缩文件提取所有文件提取单个文件总结依赖 让我们先把 zip4j 依赖关系添加到我们的 pom...
    99+
    2024-04-02
  • html中如何把密码隐藏起来
    这篇文章给大家分享的是有关html中如何把密码隐藏起来的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在HTML中,可以使用type属性将密码隐藏起来,只需要给input元素添加“type="passwo...
    99+
    2023-06-15
  • vue如何实现密码显示隐藏功能
    这篇文章给大家分享的是有关vue如何实现密码显示隐藏功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。效果:思路:利用input的type属性,当type值是text的时候展示密码,当type值是password...
    99+
    2023-06-14
  • 如何在Python中进行数据加密和解密
    如何在Python中进行数据加密和解密,需要具体代码示例数据加密和解密是信息安全领域中非常重要的概念。在实际应用中,我们经常需要对敏感的数据进行加密保护,以防止未授权的访问和信息泄露。Python是一种功能强大的编程语言,提供了丰富的库和函...
    99+
    2023-10-22
    Python 数据加密 数据解密
  • vue实现密码显示隐藏功能的思路详解
    效果: 思路: 利用input的type属性,当type值是text的时候展示密码,当type值是password的时候隐藏密码; 于是很容易想到用v-bind来绑定ty...
    99+
    2024-04-02
  • Golang实现AES加密和解密的示例代码
    目录对称加密 AES 算法加解密文件加密解密说明对称加密 AES 算法 (Advanced Encryption Standard ,AES) 优点 算法公开、计算量小、加密速度快、...
    99+
    2024-04-02
  • 如何实现el-input标签中密码的显示和隐藏功能
    这篇文章将为大家详细讲解有关如何实现el-input标签中密码的显示和隐藏功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果展示:  密码隐藏:  密码显示:代码展示...
    99+
    2024-04-02
  • 如何在Java中使用RSA加密对密码进行加密解密
    这期内容当中小编将会给大家带来有关如何在Java中使用RSA加密对密码进行加密解密,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。具体如下:public static void ...
    99+
    2023-05-31
    java rsa加密 ava
  • Python使用Crypto库实现加密解密的示例详解
    目录一:crypto库安装二:python使用crypto1:crypto的加密解密组件des.py2:crypto组件使用知识补充一:crypto库安装 pycrypto,pycr...
    99+
    2023-01-11
    Python Crypto加密解密 Python Crypto加密 Python Crypto解密 Python Crypto
  • PHP代码加密和扩展解密的示例分析
    这篇文章主要介绍了PHP代码加密和扩展解密的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php有什么用php是一个嵌套的缩写名称,是英文超级文本预处理语言,它的语法...
    99+
    2023-06-14
  • jQuery如何实现输入框密码的显示隐藏
    这篇文章主要为大家展示了“jQuery如何实现输入框密码的显示隐藏”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jQuery如何实现输入框密码的显示隐藏”这篇文...
    99+
    2024-04-02
  • python如何实现凯撒密码加密解密
    这篇文章主要介绍了python如何实现凯撒密码加密解密的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python如何实现凯撒密码加密解密文章都会有所收获,下面我们一起来看看吧。凯撒加密就是通过将字母移动一定的位...
    99+
    2023-07-02
  • Java加密解密和数字签名完整代码示例
    常见的加密算法基本的单向加密算法:BASE64严格地说,属于编码格式,而非加密算法MD5(MessageDigestalgorithm5,信息摘要算法)SHA(SecureHashAlgorithm,安全散列算法)HMAC(HashMess...
    99+
    2023-05-30
    java 加密解密代码 数字签名
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作