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


Posted in Python onJanuary 02, 2020

给明文密码加密的流程:

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库给用户名或密码加密的流程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
简单介绍Python的Django框架加载模版的方式
Jul 20 Python
Python爬虫实例扒取2345天气预报
Mar 04 Python
python自动登录12306并自动点击验证码完成登录的实现源代码
Apr 25 Python
Django Celery异步任务队列的实现
Jul 24 Python
处理python中多线程与多进程中的数据共享问题
Jul 28 Python
pandas的to_datetime时间转换使用及学习心得
Aug 11 Python
python实现微信小程序用户登录、模板推送
Aug 28 Python
flask 使用 flask_apscheduler 做定时循环任务的实现
Dec 10 Python
python多进程并发demo实例解析
Dec 13 Python
Python中的全局变量如何理解
Jun 04 Python
Python Mock模块原理及使用方法详解
Jul 07 Python
解决Python 写文件报错TypeError的问题
Oct 23 Python
python文件处理fileinput使用方法详解
Jan 02 #Python
linux 下python多线程递归复制文件夹及文件夹中的文件
Jan 02 #Python
Pytorch的mean和std调查实例
Jan 02 #Python
pytorch 图像预处理之减去均值,除以方差的实例
Jan 02 #Python
Linux下升级安装python3.8并配置pip及yum的教程
Jan 02 #Python
pytorch实现focal loss的两种方式小结
Jan 02 #Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
Jan 02 #Python
You might like
thinkphp修改配置进入默认首页的方法
2017/02/07 PHP
Javascript中的数学函数集合
2007/05/08 Javascript
基于jQuery的Spin Button自定义文本框数值自增或自减
2010/07/17 Javascript
innerHTML在IE中报错解决方案
2014/12/15 Javascript
使用javascript获取页面名称
2014/12/23 Javascript
基于jQuery1.9版本如何判断浏览器版本类型
2016/01/12 Javascript
基于jquery实现动态竖向柱状条特效
2016/02/12 Javascript
artDialog+plupload实现多文件上传
2016/07/19 Javascript
利用AngularJs实现京东首页轮播图效果
2016/09/08 Javascript
jQuery实现验证码功能
2017/03/17 Javascript
基于JS实现网页中的选项卡(两种方法)
2017/06/16 Javascript
webpack 静态资源集中输出的方法示例
2018/11/09 Javascript
JavaScript如何实现图片处理与合成
2020/05/29 Javascript
解决vue中axios设置超时(超过5分钟)没反应的问题
2020/09/04 Javascript
wxpython 学习笔记 第一天
2009/02/09 Python
Python调用命令行进度条的方法
2015/05/05 Python
windows系统下Python环境的搭建(Aptana Studio)
2017/03/06 Python
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
Python tkinter事件高级用法实例
2018/01/31 Python
python库lxml在linux和WIN系统下的安装
2018/06/24 Python
python使用pipeline批量读写redis的方法
2019/02/18 Python
python如何通过twisted搭建socket服务
2020/02/03 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
2020/04/24 Python
keras输出预测值和真实值方式
2020/06/27 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
CSS3 实现弹跳的小球动画
2020/10/26 HTML / CSS
HTML5+CSS3模仿优酷视频截图功能示例
2017/01/05 HTML / CSS
考博自荐信
2013/10/25 职场文书
应届生服务员求职信
2013/10/31 职场文书
敬老月活动总结
2014/08/28 职场文书
2014年人事工作总结范文
2014/11/19 职场文书
2015年小学远程教育工作总结
2015/07/28 职场文书
调研报告的主要写法
2019/04/18 职场文书
mysql5.7使用binlog 恢复数据的方法
2021/06/03 MySQL
SQL实现LeetCode(176.第二高薪水)
2021/08/04 MySQL
mysql性能优化以及配置连接参数设置
2022/05/06 MySQL