当前位置: 首页 > 编程笔记 >

python base64库给用户名或密码加密的流程

井昊乾
2023-03-14
本文向大家介绍python base64库给用户名或密码加密的流程,包括了python base64库给用户名或密码加密的流程的使用技巧和注意事项,需要的朋友参考一下

给明文密码加密的流程:

import base64
pwd_after_encrypt = base64.b64encode(b'this is a scret!')
pwd_before_encrypt = base64.b64decode(b'dGhpcyBpcyBhIHNjcmV0IQ==').decode('ascii')
print(pwd_after_encrypt)
print(pwd_before_encrypt)

运行结果:

b'dGhpcyBpcyBhIHNjcmV0IQ=='
this is a scret!
Process finished with exit code 0

则在代码中的调用方式是:

import base64
username = 'root'
password = base64.b64decode(b'dGhpcyBpcyBhIHNjcmV0IQ==').decode('ascii')

这样做的好处:

不会在代码中泄露密码。

说明:

若某登录密码是字符串'this is a scret!',对该密码的加密方式为:

1.首先导入python的base64库;

2.调用base64库中的base64.b64encode()对字符串'this is a scret!‘加密,得到密文(如题中的b'dGhpcyBpcyBhIHNjcmV0IQ==');

3.调用base64.b64decode()对b'dGhpcyBpcyBhIHNjcmV0IQ=='进行解密,得到真实的密码(如题中的this is a scret!)。

注意:

base64处理的是byte类型的数据,所以在字符串之前需加上b,若想解密得到字符串类型的密码,则需用'ascii'来decode byte类型的数据。

ps:python base64的加密与解密

Base64编码是一种“防君子不防小人”的编码方式。广泛应用于MIME协议,作为电子邮件的传输编码,生成的编码可逆,后一两位可能有“=”,生成的编码都是ascii字符。
优点:速度快,ascii字符,肉眼不可理解
缺点:编码比较长,非常容易被破解,仅适用于加密非关键信息的场合
Python中进行Base64编码和解码
>>> import base64
>>> s = '我是字符串'
>>> a = base64.b64encode(s)
>>> print a
ztLKx9fWt/u0rg==
>>> print base64.b64decode(a)
我是字符串

总结

以上所述是小编给大家介绍的python base64库给用户名或密码加密的流程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

 类似资料:
  • 如何初始化SDK并且让基本的用户名密码认证成功 通过阅读此文档,您可以完成用户密码登录认证,并成功启动VPN SDK 此文档默认已经集成SDK并且工程可以编译通过运行 您完全可以参考demo(特别是 AuthViewController.m)进行代码编写,但此文档仍然列出了必要的步骤 此文档只是参考,您应该根据具体需求因地适宜 此文档会略过如头文件import等基本概念与步骤,只介绍重要的概念 在

  • 我有一个项目托管在GitHub上。我在尝试将我的修改推到主控器上时失败了。我总是收到以下错误消息 但是,将我的ssh键设置为github似乎可以。实际上,当我执行时,我得到了 这似乎表明从那方面来看一切都是正常的(eurydyce是我的github用户名)。我严格遵循了github上给出的说明和许多堆栈讨论的建议,但没有办法。你知道我做错了什么吗?

  • 我试图用sourcetree推送到github,但遇到以下错误: git-c diff.mnemonicprefix=false-c core.quotepath=false push-v--tags origin live_version:live_version remote:无效的用户名或密码。致命:“https://github.com/myname/myrepo/”推送到https://

  • 问题内容: 我们正忙于为客户开发Java Web服务。有两种可能的选择: 将加密的用户名/密码存储在Web服务客户端上。从配置读取。客户端上的文件,解密并发送。 将加密的用户名/密码存储在Web服务器上。从配置读取。Web服务器上的文件,解密并在Web服务中使用。 Web服务使用用户名/密码来访问第三方应用程序。 客户端已经具有提供此功能的类,但是此方法涉及以明文方式发送用户名/密码(尽管在内联网

  • 问题内容: 在Redis中可以使用用户名,密码和数据库吗? 这个问题的原因是因为在官方的 pyramid_redis_sessions 文档(http://pyramid-redis- sessions.readthedocs.io/en/latest/gettingstarted.html )中,该参数… …(例如,在Python / Pyramid内部使用)建议使用用户名,密码和db。 但是,

  • 我有麻烦管理詹金斯的秘密密码。我希望密码不显示在日志上,但我尝试了两种方法没有成功: 第一次尝试 我尝试使用全局凭据(不受限制)设置用户和pwd,如下所示: 我执行了: 但我可以在日志中看到,用户的写入是正确的,但pwd的写入方式与它的路径相同: 在我的自动测试中,也是通过输入完整路径而不是变量的值。 第二次尝试 我试着用这样的密文: 但控制台日志上显示的是原样的密码。 有人能帮我吗? 先谢谢你。