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 kryptograficznych w języku Python jest pakiet cryptography, który udostępnia receptury kryptograficzne z interfejsami zarówno wysokiego, jak i niskiego poziomu. 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 języka 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:

pip install cryptography
pip install ironpdf
pip install cryptography
pip install 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 pokazuje, jak użyć modułu Fernet biblioteki cryptography do szyfrowania i deszyfrowania wiadomości, a następnie wygenerować dokument PDF za pomocą IronPDF. Oto wyjaśnienie poszczególnych części kodu:

  1. Importy i konfiguracja klucza licencyjnego:

    • Importuje klasę Fernet z modułu cryptography.fernet w celu zapewnienia funkcji szyfrowania i deszyfrowania.
    • Importuje ChromePdfRenderer i License z IronPDF do generowania plików PDF.
    • Ustawia klucz licencyjny dla IronPDF w celu włączenia jego funkcji.
  2. Konfiguracja treści HTML: Inicjuje zmienną content z kodem HTML, który ma zostać dołączony do dokumentu PDF.

  3. Generowanie klucza: Generuje nowy klucz przy użyciu Fernet.generate_key() i tworzy obiekt Suite Fernet (cipher_suite) z wygenerowanym kluczem. Zawiera wygenerowany klucz w treści HTML.

  4. Szyfrowanie wiadomości: Definiuje wiadomość (message), która ma zostać zaszyfrowana (b"IronPDF is awesome"). Szyfruje wiadomość przy użyciu metody cipher_suite.encrypt() i umieszcza tekst zaszyfrowany w treści HTML.

  5. Odszyfruj wiadomość: Odszyfrowuje zaszyfrowany cipher_text przy użyciu cipher_suite.decrypt() i umieszcza odszyfrowany tekst jawny w treści HTML.

  6. Generowanie plików PDF: Wykorzystuje ChromePdfRenderer do renderowania ciągu znaków HTML content do dokumentu PDF. Zapisuje wygenerowany plik PDF jako "Demo-cryptography.pdf".

Ta konfiguracja pozwala na utworzenie dokumentu PDF, który prezentuje funkcje szyfrowania i deszyfrowania zapewniane przez bibliotekę cryptography w połączeniu z możliwościami generowania plików PDF oferowanymi przez 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

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie