Przejdź do treści stopki
POMOC DOTYCZąCA JęZYKA PYTHON

kryptografia Python (jak to działa dla programistów)

Kryptografia ma zasadnicze znaczenie dla zabezpieczenia danych i komunikacji w erze cyfrowej. Ten pakiet, wraz z rozbudowanymi bibliotekami, sprawia, że wdrażanie technik kryptograficznych jest proste. Jedną z najpopularniejszych bibliotek do kryptografii w Pythonie jest pakiet cryptography, który zapewnia przepisy kryptograficzne zarówno z interfejsami wysokopoziomowymi, jak i niskopoziomowymi. W dalszej części artykułu przyjrzymy się również wszechstronnej bibliotece do generowania plików PDF o nazwie IronPDF firmy Iron Software.

Najważniejsze cechy

  1. Przepisy wysokiego poziomu: Cryptography zawiera warstwę przepisów kryptograficznych wysokiego poziomu dla typowych zadań kryptograficznych, takich jak szyfrowanie symetryczne, szyfry symetryczne, skróty wiadomości i funkcje wyprowadzania kluczy. Przepisy dotyczące szyfrowania symetrycznego wysokiego poziomu pomagają szybko i w prosty sposób wdrażać złożone algorytmy.
  2. Interfejsy niskopoziomowe: Oferuje również interfejsy niskopoziomowe do algorytmów kryptograficznych, umożliwiające bardziej szczegółową kontrolę i dostosowanie.
  3. Szyfrowanie symetryczne i asymetryczne: Biblioteka obsługuje popularne algorytmy kryptograficzne, w tym zarówno algorytmy szyfrowania symetrycznego (np. AES), jak i asymetrycznego (np. RSA).
  4. Primitywy kryptograficzne: Biblioteka standardów kryptograficznych zawiera receptury i primitywy kryptograficzne dla programistów Pythona, w tym primitywy do haszowania, wyprowadzania kluczy oraz kodów uwierzytelniających wiadomości (MAC).
  5. Wsparcie dla programistów: Programiści mogą zgłaszać problemy, a ponadto dostępna jest lista mailingowa do dyskusji na tematy związane z programowaniem.

Instalacja

Aby zainstalować pakiet kryptograficzny, można użyć pip:

pip install cryptography
pip install cryptography
SHELL

Podstawowe zastosowanie

Oto prosty przykład wykorzystania biblioteki kryptograficznej do szyfrowania symetrycznego za pomocą modułu Fernet:

from cryptography.fernet import Fernet

# Generate a key
key = Fernet.generate_key()
cipher_suite = Fernet(key)

# Encrypt a message
message = b"IronPDF is awesome"  # This must be a really secret message
cipher_text = cipher_suite.encrypt(message)
print(cipher_text)

# Decrypt the message
plain_text = cipher_suite.decrypt(cipher_text)
print(plain_text)
from cryptography.fernet import Fernet

# Generate a key
key = Fernet.generate_key()
cipher_suite = Fernet(key)

# Encrypt a message
message = b"IronPDF is awesome"  # This must be a really secret message
cipher_text = cipher_suite.encrypt(message)
print(cipher_text)

# Decrypt the message
plain_text = cipher_suite.decrypt(cipher_text)
print(plain_text)
PYTHON

W tym przykładzie generujemy klucz, szyfrujemy wiadomość, a następnie odszyfrowujemy ją za pomocą modułu Fernet.

Wynik

kryptografia Python (Jak to działa dla programistów): Rysunek 1

Przykłady zastosowań

  1. Szyfrowanie danych: Szyfruj poufne dane przed zapisaniem ich w bazie danych lub przesłaniem przez sieć.
  2. Bezpieczna komunikacja: Należy zapewnić, aby wiadomości wymieniane między stronami były poufne i zabezpieczone przed manipulacją.
  3. Uwierzytelnianie: Weryfikacja integralności i autentyczności danych przy użyciu podpisów kryptograficznych.

Przedstawiamy IronPDF

kryptografia Python (Jak to działa dla programistów): Rysunek 2 - IronPDF: Biblioteka PDF dla Python

IronPDF to potężna biblioteka języka Python przeznaczona do tworzenia, edytowania i podpisywania plików PDF przy użyciu HTML, CSS, obrazów i JavaScript dzięki obsłudze nowoczesnych standardów internetowych. Oferuje wydajność na poziomie komercyjnym przy niewielkim zużyciu pamięci. Najważniejsze cechy to:

Konwersja HTML do PDF:
IronPDF może konwertować pliki HTML, ciągi znaków HTML i adresy URL na pliki PDF. Na przykład, renderuj stronę internetową jako plik PDF przy użyciu renderera PDF przeglądarki Chrome.

Obsługa wielu platform:
IronPDF jest przeznaczony dla Python 3+ i działa również na systemach Windows, Mac, Linux oraz platformach chmurowych.
IronPDF jest również dostępny w środowiskach .NET, Java, Python i Node.js.

Redakcja i podpisanie:
Użyj IronPDF, aby ustawić właściwości, dodać zabezpieczenia za pomocą haseł i uprawnień oraz zastosować podpisy cyfrowe do plików PDF.

Szablony stron i ustawienia:
Za pomocą IronPDF można dostosowywać pliki PDF, dodając nagłówki, stopki, numery stron i regulując marginesy. Dodatkowo obsługuje niestandardowe rozmiary papieru i responsywne układy.

Zgodność z normami:
IronPDF jest zgodny ze standardami PDF, w tym PDF/A i PDF/UA, obsługuje kodowanie znaków UTF-8 oraz zarządza zasobami, takimi jak obrazy, CSS i czcionki.

Instalacja

pip install ironpdf

Generowanie dokumentów PDF przy użyciu IronPDF i kryptografii.

Wymagania wstępne

  1. Upewnij się, że masz zainstalowany Visual Studio Code
  2. Zainstalowano Python w wersji 3

Na początek utwórzmy plik w języku Python, aby dodać nasze skrypty.

Otwórz Visual Studio Code i utwórz plik, cryptographyDemo.py.

Zainstaluj niezbędne biblioteki:

:ProductInstall pip install cryptography ironpdf
:ProductInstall pip install cryptography ironpdf
SHELL

Następnie dodaj poniższy kod, aby zademonstrować użycie pakietów IronPDF i kryptograficznych w języku Python:

from cryptography.fernet import Fernet
from ironpdf import ChromePdfRenderer, License

# Apply your license key
License.LicenseKey = "your key"

# Create a PDF from an HTML string using Python
content = "<h1>Awesome IronPDF with Cryptography</h1>"

# Generate a key
content += "<h2>Generate a key</h2>"
key = Fernet.generate_key()
cipher_suite = Fernet(key)
content += "<p>Fernet.generate_key() = " + str(key) + "</p>"

# Encrypt a message
content += "<h2>Encrypt a message</h2>"
message = b"IronPDF is awesome"
cipher_text = cipher_suite.encrypt(message)
content += "<p>cipher_suite.encrypt(message)</p>"
content += "<p>" + str(cipher_text) + "</p>"

# Decrypt the message
content += "<h2>Decrypt the message</h2>"
plain_text = cipher_suite.decrypt(cipher_text)
content += "<p>cipher_suite.decrypt(cipher_text)</p>"
content += "<p>" + plain_text.decode() + "</p>"

# Generate PDF using IronPDF
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(content)

# Export to a file or Stream
pdf.SaveAs("Demo-cryptography.pdf")
from cryptography.fernet import Fernet
from ironpdf import ChromePdfRenderer, License

# Apply your license key
License.LicenseKey = "your key"

# Create a PDF from an HTML string using Python
content = "<h1>Awesome IronPDF with Cryptography</h1>"

# Generate a key
content += "<h2>Generate a key</h2>"
key = Fernet.generate_key()
cipher_suite = Fernet(key)
content += "<p>Fernet.generate_key() = " + str(key) + "</p>"

# Encrypt a message
content += "<h2>Encrypt a message</h2>"
message = b"IronPDF is awesome"
cipher_text = cipher_suite.encrypt(message)
content += "<p>cipher_suite.encrypt(message)</p>"
content += "<p>" + str(cipher_text) + "</p>"

# Decrypt the message
content += "<h2>Decrypt the message</h2>"
plain_text = cipher_suite.decrypt(cipher_text)
content += "<p>cipher_suite.decrypt(cipher_text)</p>"
content += "<p>" + plain_text.decode() + "</p>"

# Generate PDF using IronPDF
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(content)

# Export to a file or Stream
pdf.SaveAs("Demo-cryptography.pdf")
PYTHON

Wyjaśnienie kodu

Ten fragment kodu demonstruje, jak użyć modułu Fernet biblioteki cryptography do szyfrowania i deszyfrowania wiadomości, a następnie generowania dokumentu PDF przy użyciu IronPDF. Oto wyjaśnienie poszczególnych części kodu:

  1. Importy i konfiguracja klucza licencyjnego:

    • Importuje klasę Fernet z modułu cryptography.fernet dla funkcjonalności szyfrowania i deszyfrowania.
    • Importuje ChromePdfRenderer i License z IronPDF do generowania PDF.
    • Ustawia klucz licencyjny dla IronPDF w celu włączenia jego funkcji.
  2. Ustawienie Treści HTML: Inicjalizuje zmienną content z znacznikami HTML do uwzględnienia w dokumencie PDF.

  3. Generuj Klucz: Generuje nowy klucz przy użyciu Fernet.generate_key() i tworzy obiekt zestawu szyfrującego Fernet (cipher_suite) z wygenerowanym kluczem. Zawiera wygenerowany klucz w treści HTML.

  4. Szyfruj Wiadomość: Definiuje wiadomość (message) do zaszyfrowania (b"IronPDF is awesome"). Szyfruje wiadomość używając metody cipher_suite.encrypt() i dołącza ciphertext w treści HTML.

  5. Deszyfruj Wiadomość: Deszyfruje zaszyfrowany cipher_text przy użyciu cipher_suite.decrypt() i dołącza odszyfrowany tekst jawny w treści HTML.

  6. Generowanie PDF: Używa ChromePdfRenderer do renderowania ciągu HTML content do dokumentu PDF. Zapisuje wygenerowany plik PDF jako "Demo-cryptography.pdf".

Ta konfiguracja pozwala na stworzenie dokumentu PDF ukazującego funkcjonalności szyfrowania i deszyfrowania zapewniane przez bibliotekę cryptography, w połączeniu ze zdolnościami generowania PDF w IronPDF.

Wynik

kryptografia Python (Jak to działa dla programistów): Rysunek 3

PDF

kryptografia Python (Jak to działa dla programistów): Rysunek 4

Licencja IronPDF

IronPDF oferuje klucze licencyjne dla Licencji Trial, aby umożliwić użytkownikom zapoznanie się z jego rozbudowanymi funkcjami przed zakupem.

Umieść klucz licencyjny na początku skryptu przed użyciem pakietu IronPDF:

from ironpdf import License

# Apply your license key
License.LicenseKey = "key"
from ironpdf import License

# Apply your license key
License.LicenseKey = "key"
PYTHON

Wnioski

Biblioteka kryptograficzna w języku Python jest potężnym narzędziem do implementacji bezpiecznego szyfrowania i deszyfrowania danych. Łatwość obsługi i wszechstronne funkcje sprawiają, że jest to doskonały wybór dla programistów pragnących zwiększyć bezpieczeństwo swoich aplikacji.

Z drugiej strony IronPDF to wszechstronna i bogata w funkcje biblioteka do generowania plików PDF, która pomoże udokumentować wyniki w standardowy sposób. Obie te biblioteki mogą zdziałać cuda, pomagając programistom w poszerzaniu ich umiejętności.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej

Zespół wsparcia Iron

Jesteśmy online 24 godziny, 5 dni w tygodniu.
Czat
E-mail
Zadzwoń do mnie