cryptolib --- 密碼學加密演算法¶
cryptolib 模組提供對稱式加密原語。在 OpenMV Cam 上,只要啟用了 ssl 模組,就會包含此模組。
類別¶
- class cryptolib.aes(key: bytes | bytearray | memoryview, mode: int, IV: bytes | bytearray | memoryview | None = None)¶
建立一個新的 AES 加密物件,適用於加密或解密。初始化之後,加密物件僅能用於單一方向——在
encrypt()之後執行decrypt()(或反之)並不受支援。參數:
key-- 加密/解密金鑰。必須恰好為 16 位元組(AES-128)或 32 位元組(AES-256);不支援 AES-192。可接受任何符合緩衝區協定的物件。mode-- 選擇區塊加密模式:值
名稱
說明
1ECB
電子密碼本(Electronic Code Book)。每個 16 位元組區塊獨立加密;相同的明文區塊會產生相同的密文。一般不建議用於新的設計。
2CBC
密碼區塊鏈結(Cipher Block Chaining)。每個區塊在加密前會先與前一個密文區塊進行 XOR 運算。需要一個 16 位元組的
IV。ECB 與 CBC 都要求輸入長度為 16 位元組 AES 區塊大小的倍數。
IV-- CBC 模式所用的 16 位元組初始化向量。在 ECB 模式中會被忽略。
- encrypt(in_buf: bytes | bytearray | memoryview, out_buf: bytearray | memoryview | None = None) bytes¶
加密
in_buf。緩衝區長度必須為 16 位元組的倍數;請在呼叫之前自行填補明文。若省略
out_buf,結果會以新配置的bytes物件傳回。否則密文會寫入可變緩衝區out_buf,其長度必須至少與in_buf相同。in_buf與out_buf可指向相同的緩衝區以進行就地加密。
- decrypt(in_buf: bytes | bytearray | memoryview, out_buf: bytearray | memoryview | None = None) bytes¶
與
encrypt()類似,但執行相反的操作。