python3 常见解密加密算法实例分析【base64、MD5等】


Posted in Python onDecember 19, 2019

本文实例讲述了python3 常见解密加密算法。分享给大家供大家参考,具体如下:

一.使用base64

Base64编码,64指A-Z、a-z、0-9、+和/这64个字符,还有“=”号不属于编码字符,而是填充字符。

优点:方法简单

缺点:不保险,别人拿到密文可以自己解密出明文

编码原理:将3个字节转换成4个字节((3 X 8)=24=(4X6)),先读入3个字节,每读一个字节,左移8位,再右移四次,每次6位,这样就有4个字节了。

解码原理:将4个字节转换成3个字节,先读入4个6位(用或运算),每次左移6位,再右移3次,每次8位,这样就还原了。

Python3中base64模块与Python2使用方法有了明显的不一样,接下来简要介绍下base64模块。

Python 3.5.2+ (default, Aug  5 2016, 08:07:14)
[GCC 6.1.1 20160724] on linux
Type "help", "copyright", "credits" or "license" for more information.

首先导入base64模块

>>> import base64
>>> my_str='hello'

然后把字符串转码为UTF-8格式:

>>> utf_str=my_str.encode(encoding="utf-8")
>>> utf_str
b'hello'

我们试着用Base64方式加密:

>>> word=base64.b64encode(utf_str)
>>> word
b'aGVsbG8='

最后用Base64方式解密:

>>> hello=base64.b64decode(word.decode())
>>> hello
b'hello'
>>> hello.decode()
'hello'

可以看到,已经成功解密出来!

二.使用pycrypto

Python有个专门的加密解密工具包pycropto,这个包里面实现了MD2,MD4,MD5,RIPEMD,SHA1,SHA256等加密算法。

>>> from Crypto.Hash import MD5
>>> obj = MD5.new()
>>> obj.update(b"hello")
>>> obj.hexdigest()
>>> obj.hexdigest()
'5d41402abc4b2a76b9719d911017c592'
Python 相关文章推荐
python函数缺省值与引用学习笔记分享
Feb 10 Python
Python 抓取动态网页内容方案详解
Dec 25 Python
简单的Python的curses库使用教程
Apr 11 Python
Python实现读取txt文件并画三维图简单代码示例
Dec 09 Python
详解Python3.6安装psutil模块和功能简介
May 30 Python
python 实现读取一个excel多个sheet表并合并的方法
Feb 12 Python
pyqt5 获取显示器的分辨率的方法
Jun 18 Python
python小项目之五子棋游戏
Dec 26 Python
Python正则表达式如何匹配中文
May 27 Python
解决python3中os.popen()出错的问题
Nov 19 Python
详解分布式系统中如何用python实现Paxos
May 18 Python
python for循环赋值问题
Jun 03 Python
Python定义函数时参数有默认值问题解决
Dec 19 #Python
Python爬取腾讯视频评论的思路详解
Dec 19 #Python
使用Pandas将inf, nan转化成特定的值
Dec 19 #Python
pandas中read_csv的缺失值处理方式
Dec 19 #Python
python错误调试及单元文档测试过程解析
Dec 19 #Python
Python3.5 win10环境下导入kera/tensorflow报错的解决方法
Dec 19 #Python
解决Python列表字符不区分大小写的问题
Dec 19 #Python
You might like
php实现二进制和文本相互转换的方法
2015/04/18 PHP
几款极品的javascript压缩混淆工具
2007/05/16 Javascript
jQuery 选择器理解
2010/03/16 Javascript
JQuery.ajax传递中文参数的解决方法 推荐
2011/03/28 Javascript
IE下JS读取xml文件示例代码
2013/08/05 Javascript
js不能获取隐藏的div的宽度只能先显示后获取
2014/09/04 Javascript
nodejs教程之入门
2014/11/21 NodeJs
JS实现CheckBox复选框全选全不选功能
2015/05/06 Javascript
JavaScript调用浏览器打印功能实例分析
2015/07/17 Javascript
javascript中对象的定义、使用以及对象和原型链操作小结
2016/12/14 Javascript
vue.js中$set与数组更新方法
2018/03/08 Javascript
antd 表格列宽自适应方法以及错误处理操作
2020/10/27 Javascript
简单的抓取淘宝图片的Python爬虫
2014/12/25 Python
python+splinter自动刷新抢票功能
2018/09/25 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
2018/10/17 Python
pycharm中显示CSS提示的知识点总结
2019/07/29 Python
Python3 使用pillow库生成随机验证码
2019/08/26 Python
Python获取一个用户名的组ID过程解析
2019/09/03 Python
kafka监控获取指定topic的消息总量示例
2019/12/23 Python
利用Python将多张图片合成视频的实现
2020/11/23 Python
利用css3-animation实现逐帧动画效果
2016/03/10 HTML / CSS
html5 音乐播放器 audio 标签使用概述
2013/07/15 HTML / CSS
英国最大的在线时尚眼镜店:Eyewearbrands
2019/03/12 全球购物
优秀求职自荐信怎样写
2013/12/18 职场文书
总经理岗位职责描述
2014/02/08 职场文书
企业后勤岗位职责
2014/02/28 职场文书
小学生节约用水倡议书
2014/05/15 职场文书
大学生国庆节65周年演讲稿范文
2014/09/25 职场文书
社区重阳节活动总结
2015/03/24 职场文书
会议主持人开场白台词
2015/05/28 职场文书
妈妈别哭观后感
2015/06/08 职场文书
开工典礼致辞
2015/07/29 职场文书
2015年社区消防安全工作总结
2015/10/14 职场文书
2019经典广告词集锦!
2019/07/02 职场文书
nginx里的rewrite跳转的实现
2021/03/31 Servers
SQL Server的存储过程与触发器以及系统函数和自定义函数
2022/04/10 SQL Server