0Pricing
Cryptology Academy · Lekcja

Praktyczne szyfrowanie plików za pomocą AES

Używaj OpenSSL i Python do szyfrowania i deszyfrowania rzeczywistych plików za pomocą AES.

Praktyczne szyfrowanie plików za pomocą AES to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cryptology Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Wprowadzenie

Teoria spotyka się z praktyką. W tej lekcji zaszyfrujemy i odszyfrujemy rzeczywiste pliki za pomocą AES-GCM w Pythonie — zalecanego trybu uwierzytelnionego szyfrowania.

Dlaczego AES-GCM?

AES-GCM zapewnia uwierzytelnione szyfrowanie z powiązanymi danymi (AEAD). Szyfruje dane ORAZ generuje 16-bajtowy tag uwierzytelniający. Każda ingerencja w dane zostaje wykryta przed odszyfrowaniem.

Elementy AES-GCM

Dane wejściowe: 32-bajtowy klucz, losowy 12-bajtowy nonce, tekst jawny oraz opcjonalne dane powiązane (AAD). Dane wyjściowe: szyfrogram i 16-bajtowy tag uwierzytelniający. Nonce musi być unikatowy dla każdego szyfrowania.

Instalowanie biblioteki cryptography

pip install cryptography Biblioteka Python cryptography rozwijana przez PyCA jest zalecaną biblioteką kryptograficzną. Opakowuje OpenSSL i udostępnia zarówno wysokopoziomowe rozwiązania, jak i niskopoziomowe prymitywy hazmat.

Szyfrowanie AES-GCM w Pythonie

from cryptography.hazmat.primitives.ciphers.aead import AESGCM import os key = AESGCM.generate_key(bit_length=256) nonce = os.urandom(12) aad = b'file_version_1' aesgcm = AESGCM(key) ciphertext = aesgcm.encrypt(nonce, plaintext, aad)

Odszyfrowywanie AES-GCM w Pythonie

try: plaintext = aesgcm.decrypt(nonce, ciphertext, aad) except Exception: print('Decryption failed — tampered or wrong key') Jeśli weryfikacja tagu się nie powiedzie, decrypt() zgłosi wyjątek. Nigdy nie należy ignorować tego wyjątku.

Przebieg szyfrowania pliku

with open('input.bin', 'rb') as f: plaintext = f.read() ciphertext_with_tag = aesgcm.encrypt(nonce, plaintext, None) # Store: nonce (12 bytes) + ciphertext_with_tag with open('output.enc', 'wb') as f: f.write(nonce + ciphertext_with_tag)

Przebieg odszyfrowywania pliku

with open('output.enc', 'rb') as f: data = f.read() nonce = data[:12] ciphertext_with_tag = data[12:] plaintext = aesgcm.decrypt(nonce, ciphertext_with_tag, None)

Zarządzanie nonce

Losowy 12-bajtowy nonce z AES-GCM jest bezpieczny dla maksymalnie 2^32 operacji szyfrowania przy użyciu tego samego klucza, zanim prawdopodobieństwo kolizji stanie się istotne. Następnie należy zmienić klucz.

Korzystanie z OpenSSL w wierszu poleceń

# Encrypt: openssl enc -aes-256-cbc -pbkdf2 -in plain.txt -out encrypted.bin # Decrypt: openssl enc -d -aes-256-cbc -pbkdf2 -in encrypted.bin -out plain.txt Uwaga: tryb CBC — w nowszych wersjach OpenSSL należy dodać flagę -GCM, aby uzyskać uwierzytelnione szyfrowanie.

Najlepsze praktyki przechowywania kluczy

Nigdy nie należy umieszczać kluczy na stałe w kodzie źródłowym. Należy używać zmiennych środowiskowych, AWS KMS, HashiCorp Vault lub pęku kluczy systemu operacyjnego. Klucze należy regularnie zmieniać. Po odejściu pracowników należy je unieważnić.

Szybkie sprawdzenie

Co się dzieje, gdy AES-GCM wykryje, że szyfrogram został zmodyfikowany?

Podsumowanie

Można już szyfrować pliki za pomocą AES-GCM w Pythonie. Następnie przejdziemy do szyfrowania asymetrycznego i poznamy RSA od podstaw.

Często zadawane pytania

Czy lekcja „Praktyczne szyfrowanie plików za pomocą AES” jest bezpłatna?

Tak — pełny tekst „Praktyczne szyfrowanie plików za pomocą AES” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cryptology Academy, przejdź na CoddyKit PRO. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Praktyczne szyfrowanie plików za pomocą AES”?

Używaj OpenSSL i Python do szyfrowania i deszyfrowania rzeczywistych plików za pomocą AES. Ćwiczysz Cryptology Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Cryptology Academy?

Nie wymagamy żadnego doświadczenia. Cryptology Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Praktyczne szyfrowanie plików za pomocą AES”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Cryptology Academy?

Tak. Każda lekcja Cryptology Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Koncepcje szyfrowania symetrycznego
  2. Struktura AES: rundy i macierz stanu
  3. Rozszerzanie klucza AES i rozmiary kluczy
  4. Praktyczne szyfrowanie plików za pomocą AES
← Powrót do Cryptology Academy