Hướng dẫn how do you do aes encryption in python? - làm thế nào để bạn thực hiện mã hóa aes trong python?

Hướng dẫn để thực hiện AES trong Python

Ảnh của Chris Panas trên unplash

Bạn có thể nghe nói về vụ bê bối nội trợ đã diễn ra trong quá trình kiểm dịch. Houseparty là một ứng dụng giết người thời gian tuyệt vời trong những ngày dài cách ly, nó đã tập hợp bạn bè và cho phép họ chơi các trò chơi nhỏ trong khi trò chuyện video với nhau trên điện thoại của họ, tất cả những điều này được cung cấp tự do bởi chính họ. Đó là tất cả các trò chơi và trò chơi cho đến khi số lượng lớn các tài khoản Netflix và Spotify bắt đầu bị hack.Houseparty scandal that has taken place during the quarantine. Houseparty was an excellent time killer app during the long days of the quarantine, it gathered friends and allowed them to play mini-games while video chatting with each other on their phones, all of this provided freely by Houseparty themselves. It was all fun and games till vast numbers of Netflix and Spotify accounts started to get hacked.

Có tin đồn rằng người nội trợ đã bị vi phạm dữ liệu, trong đó dữ liệu của họ bị đánh cắp bởi một bên thứ ba và được tin tặc sử dụng để có quyền truy cập vào các tài khoản cá nhân. Houseparty kể rằng họ không liên quan gì đến làn sóng tin tặc lẻn vào tài khoản của người dân. Chúng tôi có lẽ sẽ không bao giờ chắc chắn những gì đã xảy ra ở đây nhưng thiệt hại đã được thực hiện. Tôi nghĩ rằng tất cả chúng ta có thể học được điều gì đó từ toàn bộ sự cố này để ngăn chặn và giảm tác động của các vi phạm dữ liệu trong tương lai:

Chúng tôi không đủ trách nhiệm

Chúng tôi không coi trọng quyền riêng tư Internet của chúng tôi. Người dùng trung bình sử dụng lại mật khẩu và email trong một số ứng dụng, có thể có mức độ danh tiếng và bảo mật khác nhau rất nhiều, mà không nhận thức được những nguy hiểm mà nó ngụ ý. Nhưng người dùng chỉ có thể được tính đến rất nhiều. Chúng tôi là nhà phát triển phải đảm bảo rằng tất cả dữ liệu chúng tôi có được từ người dùng được đối xử có trách nhiệm: dữ liệu không chỉ được lưu trữ trong môi trường an toàn, mà còn được mã hóa bằng thuật toán an toàn, chẳng hạn như AES.encrypted with a a secure algorithm, such as AES.

Thực hiện AES trong Python

May mắn thay, chúng tôi không phải thực hiện AES từ đầu, nhưng bạn có thể thử nếu bạn cảm thấy cay. Để tránh làm như vậy, trước tiên chúng ta cần cài đặt thư viện Pycrypto, có thể được thực hiện qua PIP với lệnh sau:pycrypto library, which can be done via pip with the following command:

pip install pycrypto

mà nên chạy mà không có lỗi. Khi Pycrypto được cài đặt, hãy tạo tệp Python và viết phần sau để nhập mọi thứ chúng ta cần:pycrypto is installed, create a python file and write the following to import everything we need:

Bây giờ chúng tôi sẽ tạo một lớp cho mật mã AES của chúng tôi với hàm tạo sau:

Hãy đi bộ nhanh qua hàm tạo, nó nhận được một khóa có thể có độ dài. Sau đó, chúng tôi tiến hành tạo ra một hàm băm 256 bit từ phím đó. Một hàm băm về cơ bản là một định danh duy nhất có độ dài nhất định, 32 ký tự trong trường hợp này, của bất kỳ đầu vào nào bất kể độ dài của nó. Điều này cho phép bạn có thể chuyển hàm xây dựng tên hoặc một cụm từ và nó sẽ tạo ra một khóa 256 bit duy nhất cho mật mã của bạn. Chúng tôi cũng đặt block_size thành 128, đó là kích thước khối của AES.

Trước khi chúng tôi tiến hành xác định các phương thức encryptand decrypt cho lớp AECHIPHER của chúng tôi, trước tiên hãy tạo ra __pad__unpadMethods. Ngoài ra, người mới bắt đầu trong Python có thể học hỏi từ các hướng dẫn Python tốt nhất để tăng cường học tập của họ.

Tập giấy

__padMethod nhận được ____77 để được mã hóa và thêm một số byte cho văn bản là bội số của 128 bit. Số này được lưu trữ trong number_of_bytes_to_pad. Sau đó, trong ascii_stringwe tạo ra ký tự đệm của chúng tôi và block_size0 sẽ chứa thời gian ký tự đó number_of_bytes_to_pad. Vì vậy, chúng tôi chỉ phải thêm block_size0 ở cuối plain_text của chúng tôi để bây giờ nó là bội số của 128 bit.

Undad

Theo cách ngược lại, __unpadMethod sẽ nhận được văn bản được giải mã, còn được gọi là plain_text và sẽ xóa tất cả các ký tự được thêm vào trong __padMethod. Vì vậy, trước tiên chúng ta phải xác định nhân vật cuối cùng và lưu trữ trong block_size6 Làm thế nào nhiều byte chúng ta cần cắt giảm thứ tự plain_textin để giải nén nó.

Mã hóa

Với hai phương pháp này, hãy thực hiện encryptMethod

Phương pháp encrypt nhận được plain_text sẽ được mã hóa. Đầu tiên chúng tôi đệm đó plain_text để có thể mã hóa nó. Sau khi chúng tôi tạo ra một ngẫu nhiên mới encrypt2 với kích thước của một khối AES, 128bits. Bây giờ chúng tôi tạo ra mật mã AES của chúng tôi với encrypt3 với encrypt4 của chúng tôi, trong chế độ encrypt5 và với encrypt2 vừa được tạo của chúng tôi. Bây giờ chúng tôi gọi encryptFunction của encrypt8 của chúng tôi, chuyển nó plain_text của chúng tôi đã chuyển đổi thành bit. Đầu ra được mã hóa sau đó được đặt sau encrypt2 của chúng tôi và được chuyển đổi trở lại từ các bit thành ký tự có thể đọc được.

Giải mã

Bây giờ chúng ta có thể mã hóa văn bản, nhưng tôi chắc chắn rằng chúng ta muốn có thể giải mã nó:

Để giải mã, chúng ta phải quay lại tất cả các bước được thực hiện trong encryptMethod. Đầu tiên, chúng tôi chuyển đổi decrypt2 của chúng tôi thành bit và trích xuất encrypt2, đây sẽ là 128 bit đầu tiên của decrypt2 của chúng tôi. Giống như trước đây, bây giờ chúng tôi tạo ra một mật mã AES mới với khóa của chúng tôi, trong chế độ CBC và với encrypt2 được trích xuất. Bây giờ chúng tôi gọi phương thức decrypt của encrypt8 của chúng tôi và chuyển đổi nó thành văn bản từ các bit. Chúng tôi loại bỏ phần đệm bằng __unpad và đó là nó!

Lớp decrypt9 cuối cùng sẽ trông như sau:

Suy nghĩ cuối cùng

Bây giờ bạn có thể mã hóa và giải mã dữ liệu của mình! Nếu bạn muốn chơi với AES hay chỉ kiểm tra xem việc triển khai của bạn có chính xác không, hãy thử mật mã AES trực tuyến này. Nếu bạn bị thu hút về cách AES hoạt động, hãy thoải mái vượt qua bài viết của tôi về nó.

Như mọi khi, hãy liên hệ với tôi nếu bạn cần. Tất cả các mã được tìm thấy trong hướng dẫn này là miễn phí trên GitHub.

Tôi hy vọng tất cả các bạn tìm thấy hướng dẫn này hữu ích, mã hóa hạnh phúc!

Cảm ơn bạn.

Làm thế nào để bạn thực hiện mã hóa AES trong Python?

Tạo khóa AES. ....
Tạo mật mã. ....
Mã hóa/giải mã dữ liệu. ....
ECB (Chế độ Sách mã điện tử) (AES-ECB) ....
Chế độ CBC (Chuỗi chuỗi khối mật mã) (AES-CBC) ....
Chế độ CFB (Phản hồi mật mã) (AES-CFB) ....
OFB (Chế độ Phản hồi đầu ra) (AES-OFB) ....
Chế độ CTR (Bộ đếm) (AES-CTR).

Làm thế nào để bạn mã hóa AES 256 trong Python?

Trong chương trình Python 3 sau đây, chúng tôi sử dụng các lớp pycrypto cho mã hóa và giải mã AES 256.Chương trình yêu cầu người dùng nhận mật khẩu (cụm mật khẩu) để mã hóa dữ liệu.Cụm mật khẩu này được chuyển đổi thành giá trị băm trước khi sử dụng nó làm khóa để mã hóa.use pycrypto classes for AES 256 encryption and decryption. The program asks the user for a password (passphrase) for encrypting the data. This passphrase is converted to a hash value before using it as the key for encryption.

Làm thế nào để bạn mã hóa bằng cách sử dụng AES?

AES mã hóa trực tuyến..
Nhập văn bản để được mã hóa ..
Chọn chế độ mã hóa mã hóa.ECB.CBC ..
Kích thước chính trong bit.128. 192. 256 ..
Nhập IV (tùy chọn).
Nhập khóa bí mật ..

Làm thế nào để bạn mã hóa mã hóa trong Python?

Steps:..
Nhập thư viện RSA ..
Tạo khóa công khai và riêng tư với RSA.....
Mã hóa chuỗi thành chuỗi byte ..
Sau đó mã hóa chuỗi byte bằng khóa công khai ..
Sau đó chuỗi được mã hóa có thể được giải mã bằng khóa riêng ..
Khóa công khai chỉ có thể được sử dụng để mã hóa và riêng tư chỉ có thể được sử dụng để giải mã ..