aesio
– AES 加密例程¶
该 AES
模块包含用于实现加密和解密的类。它旨在降低内存方面的开销。
在这些板上可用
-
class
aesio.
AES
(key: _typing.ReadableBuffer, mode: int = 0, iv: Optional[_typing.ReadableBuffer] = None, segment_size: int = 8)¶ 加密和解密 AES 流
使用给定的密钥创建一个新的 AES 状态。
- 参数
key (ReadableBuffer) – 16、24 或 32 字节的密钥
mode (int) – 要使用的 AES 模式。以下之一:AES.MODE_ECB、AES.MODE_CBC 或 AES.MODE_CTR
iv (ReadableBuffer) – 用于 CBC 或 CTR 模式的初始化向量
由于遗留原因,支持其他参数。
加密字符串:
import aesio from binascii import hexlify key = b'Sixteen byte key' inp = b'CircuitPython!!!' # Note: 16-bytes long outp = bytearray(len(inp)) cipher = aesio.AES(key, aesio.mode.MODE_ECB) cipher.encrypt_into(inp, outp) hexlify(outp)
-
encrypt_into
(self, src: _typing.ReadableBuffer, dest: _typing.WriteableBuffer) → None¶ 将缓冲区加密
src
为dest
.对于 ECB 模式,缓冲区必须为 16 字节长。对于 CBC 模式,缓冲区必须是 16 字节的倍数,并且长度必须相等。对于 CTX 模式,没有限制。
-
decrypt_into
(self, src: _typing.ReadableBuffer, dest: _typing.WriteableBuffer) → None¶ 将缓冲区解密
src
为dest
. 对于 ECB 模式,缓冲区必须为 16 字节长。对于 CBC 模式,缓冲区必须是 16 字节的倍数,并且长度必须相等。对于 CTX 模式,没有限制。