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中的多重继承
Apr 28 Python
python自定义类并使用的方法
May 07 Python
Python开发如何在ubuntu 15.10 上配置vim
Jan 25 Python
Python双精度浮点数运算并分行显示操作示例
Jul 21 Python
Python实现将HTML转换成doc格式文件的方法示例
Nov 20 Python
Python堆排序原理与实现方法详解
May 11 Python
python numpy数组的索引和切片的操作方法
Oct 20 Python
浅谈python常用程序算法
Mar 22 Python
tensorflow实现测试时读取任意指定的check point的网络参数
Jan 21 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
Feb 26 Python
在python中实现求输出1-3+5-7+9-......101的和
Apr 02 Python
Python读写yaml文件
Mar 20 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类的静态(static)方法和静态(static)变量使用介绍
2012/02/19 PHP
使用PHP获取当前url路径的函数以及服务器变量
2013/06/29 PHP
PHP按行读取文件时删除换行符的3种方法
2014/05/04 PHP
PHP实现检测客户端是否使用代理服务器及其匿名级别
2015/01/07 PHP
解读PHP的Yii框架中请求与响应的处理流程
2016/03/17 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
2016/06/13 PHP
PHP反射实际应用示例
2019/04/03 PHP
javascript 播放器 控制
2007/01/22 Javascript
javascript英文日期(有时间)选择器
2007/05/02 Javascript
ext for eclipse插件安装方法
2008/04/27 Javascript
JQuery操作Select的Options的Bug(IE8兼容性视图模式)
2013/04/21 Javascript
jquery对复选框(checkbox)的操作汇总
2016/01/13 Javascript
javascript创建cookie、读取cookie
2016/03/31 Javascript
javascript实现仿百度图片的瀑布流加载效果
2016/04/20 Javascript
vue中进入详情页记住滚动位置的方法(keep-alive)
2018/09/21 Javascript
使用Bootstrap做一个朝代历史表
2019/12/10 Javascript
详解Typescript 内置的模块导入兼容方式
2020/05/31 Javascript
解决vue-router路由拦截造成死循环问题
2020/08/05 Javascript
Python实现分割文件及合并文件的方法
2015/07/10 Python
解析Mac OS下部署Pyhton的Django框架项目的过程
2016/05/03 Python
TensorFlow实现AutoEncoder自编码器
2018/03/09 Python
Python使用random.shuffle()打乱列表顺序的方法
2018/11/08 Python
matplotlib.pyplot绘图显示控制方法
2019/01/15 Python
对python以16进制打印字节数组的方法详解
2019/01/24 Python
Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的
2020/04/20 Python
巧用 CSS3的webkit-box-reflect 倒影实现各类动效
2021/03/05 HTML / CSS
自我评价如何写好?
2014/01/05 职场文书
经销商培训邀请函
2014/01/21 职场文书
2014机关党员干部“正风肃纪”思想汇报
2014/09/15 职场文书
汽车转让协议书范本
2014/12/07 职场文书
中学生综合素质自我评价
2015/03/06 职场文书
2015年员工工作表现评语
2015/03/25 职场文书
工作证明书
2015/06/15 职场文书
导游词之安徽巢湖
2019/12/26 职场文书
基于Python实现的购物商城管理系统
2021/04/27 Python
Python socket如何解析HTTP请求内容
2022/02/12 Python