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 相关文章推荐
numpy数组拼接简单示例
Dec 15 Python
python3利用Dlib19.7实现人脸68个特征点标定
Feb 26 Python
python3+PyQt5实现柱状图
Apr 24 Python
python面向对象多线程爬虫爬取搜狐页面的实例代码
May 31 Python
对numpy Array [: ,] 的取值方法详解
Jul 02 Python
python 同时读取多个文件的例子
Jul 16 Python
python 变量初始化空列表的例子
Nov 28 Python
Numpy将二维数组添加到空数组的实现
Dec 05 Python
解决Python列表字符不区分大小写的问题
Dec 19 Python
Python利用多线程同步锁实现多窗口订票系统(推荐)
Dec 22 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
Mar 08 Python
Python数据分析库pandas高级接口dt的使用详解
Dec 11 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
将RTF格式的文件转成HTML并在网页中显示的代码
2006/10/09 PHP
使用PHP下载CSS文件中的图片的代码
2013/09/24 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
2014/06/13 PHP
浅谈php调用python文件
2019/03/29 PHP
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
2011/04/27 Javascript
javascript数组去重3种方法的性能测试与比较
2013/03/26 Javascript
如何学习Javascript入门指导
2013/11/01 Javascript
javascript获取本机操作系统类型的方法
2015/08/13 Javascript
Jquery Ajax Error 调试错误的技巧
2015/11/20 Javascript
Bootstrap滚动监听(Scrollspy)插件详解
2016/04/26 Javascript
JavaScript遍历Json串浏览器输出的结果不统一问题
2016/11/03 Javascript
Ajax 加载数据 练习代码
2017/01/05 Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
2017/02/14 Javascript
从零学习node.js之详解异步控制工具async(八)
2017/02/27 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
2017/06/22 Javascript
浅谈如何通过node.js对数据进行MD5加密
2018/05/16 Javascript
微信小程序中使用Async-await方法异步请求变为同步请求方法
2019/03/28 Javascript
layer弹出层倒计时关闭的实现方法
2019/09/27 Javascript
JavaScript算法学习之冒泡排序和选择排序
2019/11/02 Javascript
JS简单表单验证功能完整示例
2020/01/26 Javascript
vue项目中openlayers绘制行政区划
2020/12/24 Vue.js
Python实现线程池代码分享
2015/06/21 Python
利用python爬取散文网的文章实例教程
2017/06/18 Python
Python简单实现控制电脑的方法
2018/01/22 Python
对python中GUI,Label和Button的实例详解
2019/06/27 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
2019/08/31 Python
Python Django框架防御CSRF攻击的方法分析
2019/10/18 Python
Pytorch实现的手写数字mnist识别功能完整示例
2019/12/13 Python
TensorFlow实现打印每一层的输出
2020/01/21 Python
Python如何用filter函数筛选数据
2020/03/05 Python
Python生成并下载文件后端代码实例
2020/08/31 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
2021/02/25 Python
html5 postMessage前端跨域并前端监听的方法示例
2018/11/01 HTML / CSS
阿拉伯时尚购物网站:Nisnass
2021/02/07 全球购物
最新自我评价范文
2013/11/16 职场文书
2014年个人教学工作总结
2014/12/09 职场文书