概念:对称加密算法
所谓对称加密,就是发送方和接收方对于一个数据采用同一密钥、同一加密方式对数据进行加解密的算法。在对称加密算法中,数据发送方将明文和加密密钥一起经过特殊加密算法处理后,生成复杂的加密密文进行发送;数据接收方在收到密文后,则使用加密使用的密钥及相同算法的逆算法对加密的密文进行解密,从而使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发送方和接收方都使用这个密钥对数据进行加密和解密,这就要求加密和解密方实现都需知道加密的密钥。
对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。但因为双方强依赖于同一加密密钥,因此密钥本身对于安全性来说至关重要。
常用的对称加密算法包括 DES、3DES 以及 AES 等。其中 AES 算法相对先进,是对称加密算法中最流行的算法之一。因此也是这里关注的重点所在。
AES 在 Python 中的应用与分解
在 Python 中运用 AES 加密是很简单的,只需安装一个 PyCrypto 加密算法库即可快速展开工作。
加密和解密的第一步在于得到一个 AESCipher 对象,只需通过下面的方法即可:
from Crypto.Cipher import AES
cipher = AES.new(key, mode, iv)
该方法返回一个 AESCipher 对象。先来看一下其主要接收的三个参数:
key:初始密钥。根据 AES 规范,可以是 16 字节、24 字节和32 字节长,分别对应 128 位、192 位和 256 位;
mode:加密模式。可以寻找相关的文档了解。接下来的示例中会用到 CBC 模式,因此在此作一个简单的阐