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 (http://about.bozhu.me) triển khai AES-128 tại https: // github. com/bozhu/aes-python Có cái gì trong hộp vậy
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. encrypt và decryptMặc dù đây là một bài tập, các chức năng Thuật toán như sau:
Tổng quan về bảo mật:
Hướng dẫn để thực hiện AES trong Python Ảnh của Chris Panas trên unplashBạ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ệmChú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 PythonMay 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 Trước khi chúng tôi tiến hành xác định các phương thức 2 và 3Methods. 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 2Method nhận được ____15 để đượ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 6. Sau đó, trong 7we tạo ra ký tự đệm của chúng tôi và 8 sẽ chứa thời gian ký tự đó 6. Vì vậy, chúng tôi chỉ phải thêm 8 ở cuối plain_text của chúng tôi để bây giờ nó là bội số của 128 bit.UndadTheo cách ngược lại, 3Method sẽ nhận được văn bản được giải mã, còn được gọi là 5and sẽ xóa tất cả các ký tự được thêm vào trong 2Method. 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 pip install pycrypto 4 bao nhiêu byte chúng ta cần cắt giảm sự kết thúc của 5in để giải phóng nó.Mã hóaVới hai phương pháp này, hãy thực hiện Phương pháp 5 sẽ được mã hóa. Đầu tiên chúng tôi đệm đó 5 để có thể mã hóa nó. Sau khi chúng tôi tạo ra một encrypt 0 ngẫu nhiên mới 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 encrypt 1 với encrypt 2 của chúng tôi, trong chế độ encrypt 3 và với encrypt 0 vừa được tạo của chúng tôi. Bây giờ chúng tôi gọi encrypt function của encrypt 6 của chúng tôi, chuyển nó 5 của chúng tôi được chuyển đổi thành bit. Đầu ra được mã hóa sau đó được đặt sau encrypt 0 của chúng tôi và được chuyển đổi trở lại từ các bit thành các 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 3 và đó là nó!Lớp Suy nghĩ cuối cùngBâ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?Sử dụng AES để mã hóa và giải mã trong Python Pycrypto.. Tạo khóa .. Vector khởi tạo .. Mã hóa bằng AES .. Giải mã với AES .. Mã hóa tệp với AES. 6.1. Viết kích thước của tệp. 6.2. Lưu vectơ khởi tạo. 6.3. Điều chỉnh khối cuối cùng .. Giải mã tệp bằng cách sử dụng AES .. Làm cách nào để thực hiện một chương trình mã hóa đơn giản 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ã .. AES không thể bẻ khóa?AES 256 hầu như không thể xuyên thủng bằng các phương pháp vũ lực.Mặc dù khóa DES 56 bit có thể bị nứt trong vòng chưa đầy một ngày, AES sẽ mất hàng tỷ năm để phá vỡ bằng cách sử dụng công nghệ điện toán hiện tại.Tin tặc sẽ thật ngu ngốc khi thậm chí thử loại tấn công này.Tuy nhiên, không có hệ thống mã hóa hoàn toàn an toàn.. While a 56-bit DES key can be cracked in less than a day, AES would take billions of years to break using current computing technology. Hackers would be foolish to even attempt this type of attack. Nevertheless, no encryption system is entirely secure.
Làm thế nào để bạn giải mã 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). |