Hướng dẫn aes encryption python from scratch - trăn mã hóa aes từ đầu

Đây là một bài tập trong mã hóa khóa đối xứng an toàn, được triển khai trong Python thuần túy [chỉ được sử dụng các thư viện tích hợp], được mở rộng từ BO ZHU's [//about.bozhu.me] triển khai AES-128 tại // github. com/bozhu/aes-python

import aes, os
key = os.urandom[16]
iv = os.urandom[16]
encrypted = aes.AES[key].encrypt_ctr[b'Attack at dawn', iv]
print[aes.AES[key].decrypt_ctr[encrypted, iv]]
# b'Attack at dawn'

Có cái gì trong hộp vậy

  • Các triển khai AES-128, AES-122 và AES-256 trong Python thuần túy [rất chậm, nhưng hoạt động]. Kết quả đã được kiểm tra so với tiêu chuẩn NIST [//csrc.nist.gov/publications/fips/fips197/fips-197.pdf]
  • Chế độ CBC cho AES với PKCS#7 Padding [bây giờ cũng là PCBC, CFB, OFB và CTR nhờ @righthandabacus!]
  • encryptdecrypt Chức năng bảo vệ dữ liệu tùy ý bằng mật khẩu

Lưu ý: Việc thực hiện này không chống lại các cuộc tấn công kênh bên.

encryptdecrypt

Mặc dù đây là một bài tập, các chức năng encryptdecrypt sẽ cung cấp bảo mật hợp lý cho các tin nhắn được mã hóa. Nó đảm bảo dữ liệu được giữ bí mật [sử dụng AES], các khối được mã hóa lại với nhau [CBC], cùng một thông báo được mã hóa hai lần sẽ có các mã hóa khác nhau [muối] chống lại vũ phu [PBKDF2].

Thuật toán như sau:

salt 

Bài Viết Liên Quan

Chủ Đề