Python3+PyCryptodome 实现各种加密算法教程
一、说明
PyCryptodome 是 python 一个强大的加密算法库,可以实现常见的单向加密、对称加密、非
对称加密和流加密算法。直接 pip 安装即可:
pip install pycryptodome
官网地址:https://pycryptodome.readthedocs.io/en/latest/index.html
二、Base64 编码
2.1 base64 编码说明
原理:
将要编码的内容按 3 字节为一组进行分组,最后一组不够 3 位的则补 0(显然最多补两个 0)
每组中每字节最高 2 位改成 0 不使用,原先各位的内容保持原有顺序往后移;最后在上一步中
补了几个 0 就加几个等号以供解码时按等号个数删除 0(经此操作原先 3 节字就变成了只使用
低 6 位的 4 字节)
用途:一是 SMTP 中要以 BASE64 形式传输二进制文件,二是常用于将二进制数据转成可打印
的 ASCII 码字符进行存储(下文各加密算法的密钥一般使用十六进制字符串形式存储,但也有
以 base64 形式存储)。
其他:本质上讲 Base64 只能算是一种编码不能算是一种加密算法,PyCryptodome 库也不支
持。但从”Base64 让人一下看不懂原本内容是什么“的角度讲你也不能说他完全不算加密,平时
也经常用,我们就顺道讲一讲如何实现。
2.2 base64 编码实现代码
import base64
# 编码 b"123456",输出为 b'MTIzNDU2'
base64.b64encode(b"123456")
# 解码 b'MTIzNDU2',输出为 b"123456"
base64.b64decode(b'MTIzNDU2')
评论0