cryptolib --- mật mã đối xứng¶
Mô-đun cryptolib cung cấp các nguyên thủy mật mã đối xứng. Trên OpenMV Cams, nó được tích hợp khi mô-đun ssl được bật.
Lớp¶
- class cryptolib.aes(key: bytes | bytearray | memoryview, mode: int, IV: bytes | bytearray | memoryview | None = None)¶
Tạo đối tượng mật mã AES mới, phù hợp cho mã hóa hoặc giải mã. Sau khi khởi tạo, đối tượng mật mã chỉ có thể dùng cho một chiều --- chạy
decrypt()sauencrypt()(hoặc ngược lại) không được hỗ trợ.Tham số:
key-- khóa mã hóa/giải mã. Phải có đúng 16 byte (AES-128) hoặc 32 byte (AES-256); AES-192 không được hỗ trợ. Chấp nhận bất kỳ đối tượng nào hỗ trợ giao thức buffer.mode-- chọn chế độ mật mã khối:Giá trị
Tên
Mô tả
1ECB
Electronic Code Book. Mỗi khối 16 byte được mã hóa độc lập; các khối plaintext giống nhau tạo ra ciphertext giống nhau. Nhìn chung không được khuyến nghị cho các thiết kế mới.
2CBC
Cipher Block Chaining. Mỗi khối được XOR với khối ciphertext trước trước khi mã hóa. Yêu cầu
IV16 byte.ECB và CBC đều yêu cầu độ dài đầu vào là bội số của kích thước khối AES 16 byte.
IV-- vector khởi tạo 16 byte cho chế độ CBC. Bị bỏ qua với ECB.
- encrypt(in_buf: bytes | bytearray | memoryview, out_buf: bytearray | memoryview | None = None) bytes¶
Mã hóa
in_buf. Độ dài buffer phải là bội số của 16 byte; hãy tự thêm padding vào plaintext trước khi gọi.Nếu
out_bufbị bỏ qua, kết quả được trả về dưới dạng đối tượngbytesmới được cấp phát. Ngược lại, ciphertext được ghi vào buffer có thể thay đổiout_buf, phải có độ dài ít nhất bằngin_buf.in_bufvàout_bufcó thể tham chiếu đến cùng một buffer để mã hóa tại chỗ.
- decrypt(in_buf: bytes | bytearray | memoryview, out_buf: bytearray | memoryview | None = None) bytes¶
Giống như
encrypt(), nhưng thực hiện thao tác ngược lại.