Passer au contenu du pied de page
AIDE PYTHON

cryptography Python (Comment ça marche pour les développeurs)

Cryptographie est essentielle pour sécuriser les données et les communications à l'ère numérique. Ce package, avec ses bibliothèques étendues, facilite la mise en œuvre des techniques cryptographiques. L'un des bibliothèques les plus populaires pour la cryptographie en Python est le package cryptography, qui fournit des recettes cryptographiques avec des interfaces à la fois de haut et de bas niveau. Later in the article, we will also look into a versatile PDF generation library called IronPDF from Iron Software.

Caractéristiques clés

  1. Recettes de haut niveau : La cryptographie inclut une couche de recettes cryptographiques de haut niveau pour les tâches cryptographiques courantes, telles que le chiffrement symétrique, les chiffrements symétriques, les condensés de message, et les fonctions de dérivation de clés. Les recettes de chiffrement symétrique de haut niveau aident à mettre en œuvre rapidement et simplement des algorithmes complexes.
  2. Interfaces de bas niveau : Elle offre également des interfaces de bas niveau aux algorithmes cryptographiques, permettant un contrôle plus granulaire et une personnalisation.
  3. Chiffrement symétrique et asymétrique : La bibliothèque prend en charge les algorithmes cryptographiques courants, y compris le chiffrement symétrique (par exemple, AES) et le chiffrement asymétrique (par exemple, RSA).
  4. Primitives cryptographiques : La bibliothèque standard cryptographique inclut des recettes et primitives cryptographiques pour les développeurs Python, qui incluent des primitives pour le hachage, la dérivation de clés, et les codes d'authentification de message (MAC).
  5. Soutien aux développeurs : Les développeurs peuvent soumettre des rapports de problèmes et un liste de diffusion est également offerte pour les discussions de développement.

Installation

Pour installer le package de cryptographie, vous pouvez utiliser pip :

pip install cryptography
pip install cryptography
SHELL

Utilisation de base

Voici un exemple simple d'utilisation de la bibliothèque de cryptographie pour le chiffrement symétrique avec le module 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

Dans cet exemple, nous générons une clé, chiffrons un message, puis le déchiffrons en utilisant le module Fernet.

Sortie

cryptographie Python (Comment ça marche pour les développeurs) : Figure 1

Cas d'utilisation

  1. Chiffrement des données : Chiffrer des données sensibles avant de les stocker dans une base de données ou de les transmettre sur un réseau.
  2. Communication sécurisée : Assurez-vous que les messages échangés entre les parties sont confidentiels et à l'épreuve de la falsification.
  3. Authentification : Vérifiez l'intégrité et l'authenticité des données à l'aide des signatures cryptographiques.

Présentation d'IronPDF

cryptographie Python (Comment ça marche pour les développeurs) : Figure 2 - IronPDF : La Bibliothèque PDF Python

IronPDF est une puissante bibliothèque Python conçue pour créer, éditer, et signer des PDF en utilisant HTML, CSS, images, et JavaScript grâce à sa prise en charge des normes Web modernes. Elle offre des performances de qualité commerciale avec une empreinte mémoire faible. Les fonctionnalités clés incluent :

Conversion HTML en PDF : IronPDF peut convertir des fichiers HTML, des chaînes HTML, et des URLs en PDF. Par exemple, vous pouvez rendre une page web en PDF en utilisant le moteur de rendu Chrome PDF.

Soutien multiplateforme : IronPDF est conçu pour Python 3+ et fonctionne également sous Windows, Mac, Linux ou plateformes cloud.
IronPDF is also available in .NET, Java, Python, and Node.js.

Édition et signature : Utilisez IronPDF pour définir des propriétés, ajouter la sécurité avec des mots de passe et des permissions, et appliquer des signatures numériques à vos PDF.

Modèles de page et paramètres : Vous pouvez personnaliser les PDF avec des en-têtes, pieds de page, numéros de pages, et marges ajustables avec IronPDF. Il supporte également des tailles de papier personnalisées et des mises en page adaptatives.

Conformité aux normes : IronPDF est conforme aux normes PDF, y compris PDF/A et PDF/UA, prend en charge l'encodage de caractères UTF-8, et gère des ressources telles que les images, CSS, et polices.

Installation

pip install ironpdf

Générez des documents PDF en utilisant IronPDF et Cryptography.

Prérequis

  1. Assurez-vous que Visual Studio Code est installé
  2. La version 3 de Python est installée

Pour commencer, créons un fichier Python pour ajouter nos scripts.

Ouvrez Visual Studio Code et créez un fichier, cryptographyDemo.py.

Installez les bibliothèques nécessaires :

pip install cryptography
pip install ironpdf
pip install cryptography
pip install ironpdf
SHELL

Ajoutez ensuite le code ci-dessous pour démontrer l'utilisation des packages IronPDF et cryptography en 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

Explication du code

Ce bout de code démontre comment utiliser le module Fernet de la bibliothèque cryptography pour effectuer le chiffrement et le déchiffrement des messages, puis générer un document PDF en utilisant IronPDF. Voici une explication de chaque partie du code :

  1. Importations et configuration de la clé de licence :

    • Importe la classe Fernet du module cryptography.fernet pour les fonctionnalités de chiffrement et de déchiffrement.
    • Importe ChromePdfRenderer et License d'IronPDF pour la génération de PDF.
    • Définit la clé de licence pour IronPDF pour activer ses fonctionnalités.
  2. Configuration du contenu HTML : Initialise la variable content avec un balisage HTML à inclure dans le document PDF.

  3. Générer une clé : Génère une nouvelle clé en utilisant Fernet.generate_key() et crée un objet suite de chiffrement Fernet (cipher_suite) avec la clé générée. Inclut la clé générée dans le contenu HTML.

  4. Chiffrer un message : Définit un message (message) à chiffrer (b"IronPDF est génial"). Chiffre le message en utilisant la méthode cipher_suite.encrypt() et inclut le texte chiffré dans le contenu HTML.

  5. Déchiffrer un message : Déchiffre le cipher_text chiffré en utilisant cipher_suite.decrypt() et inclut le texte en clair déchiffré dans le contenu HTML.

  6. Génération de PDF : Utilise ChromePdfRenderer pour rendre la chaîne HTML content en un document PDF. Enregistre le fichier PDF généré sous le nom "Demo-cryptography.pdf".

Cette configuration permet de créer un document PDF qui présente les fonctionnalités de chiffrement et de déchiffrement fournies par la bibliothèque cryptography, combinées aux capacités de génération de PDF d'IronPDF.

Sortie

cryptographie Python (Comment ça marche pour les développeurs) : Figure 3

PDF

cryptographie Python (Comment ça marche pour les développeurs) : Figure 4

Licence IronPDF

IronPDF offre une clé de licence d'essai pour permettre aux utilisateurs d'explorer ses fonctionnalités étendues avant l'achat.

Placez la clé de licence au début du script avant d'utiliser le package IronPDF :

from ironpdf import License

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

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

Conclusion

La bibliothèque cryptography en Python est un outil puissant pour implémenter le chiffrement et le déchiffrement de données sécurisées. Sa facilité d'utilisation et ses fonctionnalités complètes en font un excellent choix pour les développeurs cherchant à améliorer la sécurité de leurs applications.

D'autre part, IronPDF est une bibliothèque de génération de PDF polyvalente et riche en fonctionnalités qui aidera à documenter les résultats de manière standard. Ces deux bibliothèques peuvent faire des merveilles pour les développeurs afin d'améliorer leurs compétences.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite