python3 常见解密加密算法实例分析【base64、MD5等】
作者:nudt_qxx 发布时间:2023-06-05 01:03:42
本文实例讲述了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'
PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:
文字在线加密解密工具(包含AES、DES、RC4等):
http://tools.jb51.net/password/txt_encode
MD5在线加密工具:
http://tools.jb51.net/password/CreateMD5Password
在线散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt
在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha
在线sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode
希望本文所述对大家Python程序设计有所帮助。
来源:https://blog.csdn.net/xiangxianghehe/article/details/52755918


猜你喜欢
- 如下所示:#os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。这个列表以字母顺序。 它不包括 '.&
- 一、直接导入模块import 模块名优点:干净直接import sysprint(sys.path)import os # os是一个模块i
- tensorflow对图像进行多个块的行列拼接tf.concat(), tf.stack()在深度学习过程中,通过卷积得到的图像块大小是8×
- 一、分析阶段 一般来说,在系统分析阶段往往有太多需要关注的地方,系统各种功能性、可用性、可靠性、安全性需求往往吸引了我们大部分的注意力,但是
- 一.雅黑设计理念 雅黑字体是为微软公司设计的屏幕显示汉字。它具有个性独特、结体优美、识别性强、块状效果好、显示清晰等优点。在当今数字化时代更
- 最近发现各大类库都能利用div.innerHTML=HTML片断来生成节点元素,再把它们插入到目标元素的各个位置上。这东西实际上就是inse
- 目录1.数据库主从分类:2.mysql主从介绍由来3.主从作用4.主从复制原理5.主从复制配置(数据一致时)5.1主从服务器分别安装mysq
- 使用命令:os.system('python file_name.py')解释:os.system是执行当前的系统命令1、拿
- 另外他们列出的这些区别有些是蛮有意义的,有些可能由于他们本人的MySQL DBA的身份,对Oracle的理解有些偏差,有些则有凑数的嫌疑.
- 目录1. threding模块创建线程对象2. threding模块创建多线程3. 多线程的参数传递4. 线程产生的资源竞争1. thred
- 本文全部操作均在windows环境下安装 PythonPython是一种跨平台的计算机程序设计语言,它可以运行在Windows、Mac和各种
- 本文实例讲述了Selenium基本用法。分享给大家供大家参考,具体如下:Selenium是一个用于Web应用程序测试的工具。Selenium
- 今天发现一个使用python写的管理cisco设备的小框架tratto,可以用来批量执行命令。下载后主要有3个文件:Systems.py 定
- 网站可用性是任何网站的基本要素,而可用的导航更是网站所必需的要素之一。导航决定了用户如何与网站进行交互。如果没有了可用的导航,那么网站内容就
- 如今大部分网站仍然采用表格嵌套内容的方式来制作网站,虽然此方法对于我们来说比较熟悉、比较上手;但是,它却阻碍了一种更好的、更有亲和力的、更灵
- 本文实例讲述了Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能。分享给大家供大家参考,具体如下:因为需要使用
- 1、django的model转json对象。1.1、单个modle转换,返回json对象:sqlOrder = get_object_or_
- 最近开发微信公众号内嵌H5页面,使用vue搭建的项目,由于业务需求,需要实现微信自定义分享功能,所以项目中集成微信JS-SDK。微信JS-S
- selenium操作chrome浏览器需要有ChromeDriver驱动来协助。webdriver中关浏览器关闭有两个方法,一个叫quit,
- SQL分页查询:背景在公司的系统中有一个平台是 做配置管理的 就是所谓的 CRUD 的平台,但是点击后进去到页面第一次看到的是一次查询的页面