那些你还不知晓的Python加密方式,现在有机会接触了,种类繁多!
Posted q1613161916
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了那些你还不知晓的Python加密方式,现在有机会接触了,种类繁多!相关的知识,希望对你有一定的参考价值。
![技术分享图片](https://image.cha138.com/20210705/3dfaf24e645a41c2b8e847be1aacf589.jpg)
我们所说的加密方式,都是对二进制编码的格式进行加密的,对应到Python中,则是我们的 Bytes 。
所以当我们在Python中进行加密操作的时候,要确保我们操作的是 Bytes ,否则就会报错。
![技术分享图片](https://image.cha138.com/20210705/e456119f41484a14a72c44eded5d0f9d.jpg)
两位十六进制常常用来显示一个二进制字节。
利用 binascii 模块可以将十六进制显示的字节转换成我们在加解密中更常用的显示方式:
![技术分享图片](https://image.cha138.com/20210705/53b619843efa4ed0ab1e1f6424035533.jpg)
![技术分享图片](https://image.cha138.com/20210705/d007abc42fe54b4cab50b42b0567b594.jpg)
URL编码
简介
正常的URL中是只能包含ASCII字符的,也就是字符、数字和一些符号。而URL编码就是一种浏览器用来避免url中出现特殊字符(如汉字)的编码方式。
![技术分享图片](https://image.cha138.com/20210705/c2d568d35fea41efb8a96eea1dc0398b.jpg)
Python实现
![技术分享图片](https://image.cha138.com/20210705/f9bee19d1cdd46d3b452bd9d3b367f35.jpg)
Base64编码
简述
Base64是一种用64个字符来表示任意二进制数据的方法。
![技术分享图片](https://image.cha138.com/20210705/1e5c436a70a44731a6e7038aaede3c94.jpg)
Base64编码的原理
![技术分享图片](https://image.cha138.com/20210705/17011bd6e26d4cdfb21b8576dd3a3f66.jpg)
要点:
![技术分享图片](https://image.cha138.com/20210705/8cae6694136443adba744c196a47e079.jpg)
Base64编码的说明
![技术分享图片](https://image.cha138.com/20210705/4e9a511bba07467ab4133105708c9197.jpg)
Python的Base64使用
Python内置的 base64 模块可以直接进行base64的编解码
用于base64编码的,要么是ASCII包含的字符,要么是二进制数据
![技术分享图片](https://image.cha138.com/20210705/c589c363f63b46689cdcf3875a29f88e.jpg)
MD5(信息-摘要算法)
简述
message-digest algorithm 5(信息-摘要算法)。经常说的“MD5加密”,就是它→信息-摘要算法。
![技术分享图片](https://image.cha138.com/20210705/92dbdce9f4714aa284fbb6dc8cb4d67c.jpg)
不可逆性
![技术分享图片](https://image.cha138.com/20210705/61275c18f64446b084ec74362558fe9d.jpg)
特点
![技术分享图片](https://image.cha138.com/20210705/49c594b9320b443a9aa063b681796c56.jpg)
Python的MD5使用
由于MD5模块在python3中被移除,在python3中使用 hashlib 模块进行md5操作
![技术分享图片](https://image.cha138.com/20210705/d268d5982c80435e824942f1c79af3cb.jpg)
MD5长度
![技术分享图片](https://image.cha138.com/20210705/ce7522832eff40a2b313accbd82a0e19.jpg)
Python加密库PyCryptodome
PyCrypto是 Python 中密码学方面最有名的第三方软件包。可惜的是,它的开发工作于2012年就已停止。
幸运的是,有一个该项目的分支PyCrytodome 取代了 PyCrypto 。
安装与导入
Windows安装之前需要先安装 Microsoft Visual c++ 2015 。
在Linux上安装,可以使用以下 pip 命令:
![技术分享图片](https://image.cha138.com/20210705/b4be4597e0c0477db5a399db18f70438.jpg)
DES
简介
DES算法为密码体制中的对称密码体制,又被称为美国数据加密标准。
DES是一个分组加密算法,典型的DES以64位为分组对数据加密,加密和解密用的是同一个算法。
![技术分享图片](https://image.cha138.com/20210705/77209f00c03e445eb72412968f6d8072.jpg)
例子
![技术分享图片](https://image.cha138.com/20210705/a0ed03bb64ea4d6fa9f0bd14c4999891.jpg)
3DES
简介
3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称。它相当于是对每个数据块应用三次DES加密算法。
![技术分享图片](https://image.cha138.com/20210705/3ddd16193b434a0895e0d89d151690a7.jpg)
AES
简介
高级加密标准(英语: Advanced Encryption Standard ,缩写: AES ),在密码学中又称 Rijndael加密法 ,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。
![技术分享图片](https://image.cha138.com/20210705/0503deed44a94c4b86a0784d4fecea5d.jpg)
详解
![技术分享图片](https://image.cha138.com/20210705/c2c3e59121574507ac5c7f7de453bb7e.jpg)
AES为分组密码,分组密码也就是把明文分成一组一组的,每组长度相等,每次加密一组数据,直到加密完整个明文。
![技术分享图片](https://image.cha138.com/20210705/ed4cfd7e32eb4e9296d43dc7e8697a2b.jpg)
Python实现
![技术分享图片](https://image.cha138.com/20210705/9a88ba379f4f47d0a67a68cf26806463.jpg)
运行结果:
![技术分享图片](https://image.cha138.com/20210705/1aa851a667124476934cac9e1be8b2c8.jpg)
RSA
非对称加密
典型的如RSA等,常见方法,使用openssl ,keytools等工具生成一对公私钥对,使用被公钥加密的数据可以使用私钥来解密,反之亦然(被私钥加密的数据也可以被公钥解密) 。
![技术分享图片](https://image.cha138.com/20210705/0969802420b7431cb51102bc6e6d2070.jpg)
简介
RSA加密算法是一种 非对称加密算法 。在公开密钥加密和电子商业中RSA被广泛使用。
![技术分享图片](https://image.cha138.com/20210705/0deb0cd01abe4c2d86b91fe42f5d988b.jpg)
Python实现
首先我们需要安装一个 rsa 模块:
![技术分享图片](https://image.cha138.com/20210705/958f377029234c7baa4cde73e1a1fd41.jpg)
用网页中的公钥把数据加密
![技术分享图片](https://image.cha138.com/20210705/f817c712d2f9434f87acce690ebc2d39.jpg)
运行结果:
![技术分享图片](https://image.cha138.com/20210705/238aeb879d7043de80ec235babcd096d.jpg)
本教程就到此结束了,可以做反破解与破解的基础知识。
以上是关于那些你还不知晓的Python加密方式,现在有机会接触了,种类繁多!的主要内容,如果未能解决你的问题,请参考以下文章