Kryptografia z Pythonem

Kryptografia z Pythonem

Kryptografia, nauka szyfrów, jest prawdziwa za pomocą kodowania. Nie możemy zdecydować, że język programowania był lepszy lub gorszy od innego. Jednak wybór odpowiedniej biblioteki kryptografii robi różnicę.

Python zapewnia kilka bardzo wyrafinowanych bibliotek i modułów do szyfrowania i odszyfrowania danych. Niektóre z nich to kryptografia, hashlib, prosty-cyrk itp. Artykuł pokazuje zastosowanie nowoczesnych praktyk kryptograficznych w Pythonie za pomocą biblioteki kryptografii, ilustrując, jak szyfrować i odszyfrować struny i pliki tekstowe.

Instalacja biblioteki kryptografii

Kryptografia to biblioteka w Python, która zapewnia użytkownikom różne kryptograficzne sposoby; Jednym z nich jest łatwe szyfrowanie danych i deszyfrowanie. Użyj następującego polecenia, aby zainstalować bibliotekę kryptografii.

Ubuntu@ubuntu: ~ $ pip instaluj kryptografię

Szyfrowanie tekstu

Import Fernet

Po udanej instalacji moduł Fernet jest importowany z biblioteki. Funkcja bierze odpowiedzialność za szyfrowanie, a także odszyfrowanie danych. W tym celu utwórz plik Python i zaimportuj moduł Fernet z biblioteki kryptografii w następujący sposób:

z kryptografii.Fernet Import Fernet

Generowanie klucza

Teraz wygeneruj klucz uwierzytelnienia, definiując funkcję lub po prostu używając generatora Fernet w Pythonie. Fernet.Funkcja Generate_Key () wygeneruje klucz do szyfrowania i deszyfrowania. Dodaj następujący wiersz do kodu:

>> klucz = paproć.generate_key ()

Teraz klasa Fernet zostanie utworzona za pomocą wygenerowanego klucza.

>> Fernet = Fernet (klucz)

Szyfrowanie ciągów tekstu

Szyfrowanie tekstu to teraz tylko kilka wierszy kodu. Dodaj następujące wiersze, aby zaszyfrować tekst.

>> wiadomość = „Ten tekst zostanie zaszyfrowany”
>> encrypted_message = paproć.szyfruj (wiadomość.kodować())
>> print („oryginalny ciąg tekstowy:”, wiadomość)
>> Drukuj („Wiadomość po szyfrowaniu:” Encrypted_message)

Wykonanie powyższego kodu Pythona wyświetla nieopłacony ciąg znaków alfanumerycznych, jak pokazano poniżej. Jest to najprostsza forma szyfrowania strun tekstowych za pomocą biblioteki kryptografii w Python. Po pierwsze, koduje ciąg, aby szyfrować go później za pomocą przepisu na szyfrowanie kryptografii.

Odszyfrowanie ciągów tekstu

Po szyfrowaniu ciągu za pomocą metody szyfrowania fretki odszyfrowaj tekst z powrotem do jego oryginalnej formy. Udane odszyfrowanie zapewnia, że ​​odbiorca może bez żadnych problemów dekodować i uzyskać dostęp do informacji.

Stąd w przypadku gładkiego odszyfrowania moduły Fernet również ułatwiają funkcję odszyfrowania. Dodanie tych dwóch wierszy do pliku Pythona będzie sprawnie odszyfrować tę samą wiadomość do jego początkowej formy.

decrypted_message = Fernet.decrypt (Encrypted_message).rozszyfrować()
print („odszyfrowany ciąg tekstu: ', decrypted_message)

Powyższe wiersze kodu używają tej samej instancji Fernet, która używa klucza zapisanego w pamięci programu do odszkodowania. Fernet.Funkcja decrypt () zwraca kodowany ciąg po odszyfrowaniu, ponieważ został zakodowany przed szyfrowaniem. Teraz funkcja dekodowania zwraca kodowany ciąg do oryginalnej formy.

Szyfrowanie plików

Podobnie jak szyfrowanie tekstu, zaimportuj moduł Fernet do szyfrowania plików i generowania kluczy. Zaimportuj moduł Fernet z biblioteki kryptografii.

z kryptografii.Fernet Import Fernet

Pokolenie kluczowe

Jak pokazano powyżej, użyj funkcji generatora klucza Fernet, aby wygenerować klucz. Chociaż lepszym podejściem do testowania szyfrowania i odszyfrowania krótkich tekstów jest to praktycznie przydatne, ponieważ traci klucz na stałe po zakończeniu programu. Dlatego zaleca się bezpieczne przechowywanie klucza w pliku, aby można go było odczytać i wykorzystywać w razie potrzeby.

Włącz to, definiując funkcję generatora klucza w kodzie, która zapisuje klucz do pliku. Można to również zrobić, przechowując klawisz Fernet w pliku tekstowym. Wygeneruj klucz i przechowuj go w pliku do wykorzystania w przyszłości.

>> klucz = paproć.generate_key ()
>> z otwartym („Keyfile.Klucz „,„ wb ”) jako plik kluczowy:
Keyfile.Napisz (klucz)

Ten kod wygeneruje losowy ciąg alfanumeryczny i przechowuje go w pliku kluczowym.plik kluczowy.

Szyfrowanie

Użyj następującego wiersza kodu, aby odczytać już zapisany klucz do szyfrowania plików.

>> z otwartym („Keyfile.Klucz „,„ rb ”) jako plik kluczy:
>> klucz = klucz.Czytać()

Używanie klucza do instancji Fernet:

>> Fernet = Fernet (klucz)

Otwórz i odczytaj plik, który ma być zaszyfrowany i zaszyfrował dane w pliku za pomocą szyfrowania Fernet:

>> z otwartą (lista.csv ', „rb”) jako oryginał_file:
oryginał_data = oryginał_pliku.Czytać()
>> encrypted_data = paproć.Encrypt (original_data)

Teraz otwórz plik w trybie zapisu i zapisz zaszyfrowane dane:

>> z otwartą (lista.csv ', „wb”) jako szyfrowany_file:
encrypted_file.Write (Encrypted_data)

Powyższe wykonywanie kodu zastąpi oryginalne dane pliku masą alfanumerycznych ciągów.

Odszyfrowanie pliku

Użyj ponownie modułu Fernet, aby odszyfrować plik za pomocą tego samego klucza. Poniższy kod najpierw odczytuje dane z zaszyfrowanego pliku i przywraca je do oryginalnej formy za pomocą funkcji deszyfrowania.

>> Fernet = Fernet (klucz)
>> z otwartą (lista.csv ', „rb”) jako encrypted_file:
Encrypted_data = Encrypted_file.Czytać()
>> decrypted_data = Fernet.decrypt (Encrypted_data)
>> z otwartą (lista.csv ', „wb”) jako decrypted_file:
decrypted_file.Write (decrypted_data)

Wniosek

Biblioteka kryptografii jest jedną z wielu bibliotek i modułów, które Python oferuje bezpieczną komunikację i szyfrowanie. Moduł Ferneta biblioteki zapewnia wbudowany generator kluczy i zapewnia funkcje szyfrowania i deszyfrowania dla serii danych i dużych plików.