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中的Descriptor描述符类
Jun 14 Python
python下如何查询CS反恐精英的服务器信息
Jan 17 Python
使用Python3制作TCP端口扫描器
Apr 17 Python
Python实现简单的获取图片爬虫功能示例
Jul 12 Python
python类的方法属性与方法属性的动态绑定代码详解
Dec 27 Python
Python读取mat文件,并转为csv文件的实例
Jul 04 Python
Flask框架中request、请求钩子、上下文用法分析
Jul 23 Python
django中使用Celery 布式任务队列过程详解
Jul 29 Python
浅析python内置模块collections
Nov 15 Python
使用pyqt5 tablewidget 单元格设置正则表达式
Dec 13 Python
浅谈Python程序的错误:变量未定义
Jun 02 Python
用Python制作mini翻译器的实现示例
Aug 17 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
Apache下禁止php文件被直接访问的解决方案
2013/04/25 PHP
php购物车实现方法
2015/01/03 PHP
9个实用的PHP代码片段分享
2015/01/22 PHP
PHP 正则表达式小结
2015/02/12 PHP
Laravel框架控制器,视图及模型操作图文详解
2019/12/04 PHP
模仿JQuery sortable效果 代码有错但值得看看
2009/11/05 Javascript
JavaScript 联动的无限级封装类,数据采用非Ajax方式,随意添加联动
2010/06/29 Javascript
奉献给JavaScript初学者的编写开发的七个细节
2011/01/11 Javascript
jquery实现网页查找功能示例分享
2014/02/12 Javascript
JavaScript严格模式禁用With语句的原因
2014/10/20 Javascript
jQuery插件slider实现拖动滑块选取价格范围
2015/04/30 Javascript
zTree插件下拉树使用入门教程
2016/04/11 Javascript
几句话带你理解JS中的this、闭包、原型链
2016/09/26 Javascript
javascript中Number的方法小结
2016/11/21 Javascript
jQuery实现CheckBox全选、全不选功能
2017/01/11 Javascript
详解Javascript中DOM的范围
2017/02/13 Javascript
详解angular脏检查原理及伪代码实现
2018/06/08 Javascript
JavaScript实现的前端AES加密解密功能【基于CryptoJS】
2018/08/28 Javascript
Vue 中 template 有且只能一个 root的原因解析(源码分析)
2020/04/11 Javascript
Django静态资源URL STATIC_ROOT的配置方法
2014/11/08 Python
Python 3.x 新特性及10大变化
2015/06/12 Python
Python3多线程爬虫实例讲解代码
2018/01/05 Python
python实现人人自动回复、抢沙发功能
2018/06/08 Python
Python学习小技巧总结
2018/06/10 Python
python实现连连看辅助(图像识别)
2020/03/25 Python
django中SMTP发送邮件配置详解
2019/07/19 Python
Python类的动态绑定实现原理
2020/03/21 Python
Python文件夹批处理操作代码实例
2020/07/21 Python
洛杉矶生活休闲而精致的基础品牌:Mika Jaymes
2018/01/07 全球购物
PHP如何调用MYSQL存储过程
2014/05/30 面试题
房地产公司见习自我鉴定
2014/04/28 职场文书
微笑面对生活演讲稿
2014/05/13 职场文书
明星员工获奖感言
2014/08/14 职场文书
工人先进事迹材料
2014/12/26 职场文书
考察邀请函范文
2015/01/31 职场文书
鲁滨孙漂流记读书笔记
2015/06/30 职场文书