我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么在Python中隐藏和加密密码

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么在Python中隐藏和加密密码

今天小编给大家分享一下怎么在Python中隐藏和加密密码的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

前言

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

maskpass()

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

安装:

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

pip install maskpass

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

  • askpass()

  • advpass()

askpass():

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

import maskpasspwd = 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 maskpasspwd = 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 librarypwd = maskpass.advpass() # masking the passwordprint('Password : ', pwd)

输出:

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

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

base64()

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

# encoding the stringstring = "haiyong"# encoding string with utf-8b = 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 base64string = "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 passwordimport 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中隐藏和加密密码”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么在Python中隐藏和加密密码

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么在Python中隐藏和加密密码

今天小编给大家分享一下怎么在Python中隐藏和加密密码的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前言有多种 Pytho
2023-06-29

Python脚本加密,源码隐藏

虽然资源共享,技术无边界,但是有些脚本源码还是不想让别人知道,所以通过编译加密就可以了。编译加密命令:python -m py_compile /root/666.py这样就把 .py 编译加密为 .pyc
2023-01-31

Python中怎么加密密码

今天就跟大家聊聊有关Python中怎么加密密码,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。如何在Python中加密密码加密密码会将密码编码为随机字符序列。使用base64.b64e
2023-06-16

react怎么实现密码隐藏功能

react实现密码隐藏功能的方法:1、添加依赖“import {View,Text,TouchableWithoutFeedback,TextInput,Image,StyleSheet,} from 'react-native';”;2、通过“{this.state.imageState ? (...)}”方法实现密码显示与隐藏功能即可。
2023-05-14

Android怎么实现显示和隐藏密码功能

这篇文章主要介绍“Android怎么实现显示和隐藏密码功能”,在日常操作中,相信很多人在Android怎么实现显示和隐藏密码功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android怎么实现显示和隐藏密
2023-07-02

Android中实现密码的隐藏和显示的示例

在Android开发中,需要密码的隐藏和显示,下面就和大家分享一下使用方法:xml代码:
2023-05-30

Android 中怎么利用EditText实现密码的隐藏和显示功能

这篇文章给大家介绍Android 中怎么利用EditText实现密码的隐藏和显示功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Android EditText密码的隐藏和显示功能实现效果图:实现代码:首先在xml里
2023-05-30

在Linux中如何产生和加密解密随机密码

本篇内容介绍了“在Linux中如何产生和加密解密随机密码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 使用命令 pwgen 来生成一个
2023-06-13

怎么给python代码加密

要给Python代码加密,可以使用以下方法之一:1. 使用编译器或打包工具:将Python代码编译成字节码或将其打包成可执行文件。这样,代码将被转换为机器语言或二进制文件,使其难以被逆向工程或修改。常用的工具有Nuitka、PyInstal
2023-10-18

sql中怎么对密码字段加密

在SQL中对密码字段进行加密一般可以通过使用哈希函数来实现。常见的哈希函数有MD5、SHA-1、SHA-256等。以下是一个使用MD5哈希函数对密码字段进行加密的示例:UPDATE usersSET password = MD5(&#x
sql中怎么对密码字段加密
2024-04-09

如何在Python中进行数据加密和解密

如何在Python中进行数据加密和解密,需要具体代码示例数据加密和解密是信息安全领域中非常重要的概念。在实际应用中,我们经常需要对敏感的数据进行加密保护,以防止未授权的访问和信息泄露。Python是一种功能强大的编程语言,提供了丰富的库和函
2023-10-22

Linux中怎么生成crypt加密密码

本篇文章给大家分享的是有关Linux中怎么生成crypt加密密码,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。我们可以用mkpasswd命令:这个命令就是用来生成crypt格式
2023-06-13

Android应用中怎么实现一个密码显示与隐藏功能

Android应用中怎么实现一个密码显示与隐藏功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。实现代码如下:2023-05-31

mongodb怎么添加用户和密码

在MongoDB中,可以使用以下步骤添加用户和密码:1. 连接到MongoDB服务器使用Mongo shell或MongoDB Compass等工具连接到MongoDB服务器。2. 切换到admin数据库在连接到MongoDB服务器后,首先
2023-08-31

python换位密码及换位解密转置加密怎么实现

这篇文章主要介绍了python换位密码及换位解密转置加密怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python换位密码及换位解密转置加密怎么实现文章都会有所收获,下面我们一起来看看吧。换位密码Tra
2023-06-30

怎么在javascript中隐藏和显示div

这期内容当中小编将会给大家带来有关怎么在javascript中隐藏和显示div,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。javascript是一种什么语言javascript是一种动态类型、弱类型的语
2023-06-14

怎么在Android中利用RSA算法进行加密和解密

这期内容当中小编将会给大家带来有关怎么在Android中利用RSA算法进行加密和解密,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、公钥加密和私钥解密 public stati
2023-05-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录