AIDE PYTHON

hashlib Python (Comment cela fonctionne : un guide pour les développeurs)

Publié février 19, 2025
Partager:

LeshashlibLe module en Python est un outil puissant pour travailler avec des algorithmes de hachage sécurisé et des condensés de messages. Ce module fournit une interface standard à de nombreux algorithmes de hachage sécurisés, ce qui en fait un choix polyvalent pour les développeurs souhaitant garantir l'intégrité et la sécurité des données. Plus loin dans l'article, nous examinerons également une bibliothèque polyvalente de génération de PDF deIronSoftwareappeléIronPDFet écrivez un script utilisant les deux bibliothèques pour démontrer leur utilisation.

Introduction

LeshashlibLe module fait partie de la bibliothèque standard de Python, donc il n'est pas nécessaire de l'installer séparément. Il inclut diverses fonctions de hachage cryptographiques, telles que MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, et la série SHA-3. Ces fonctions sont utilisées pour créer des objets de hachage, qui peuvent ensuite être utilisés pour générer des hachages de données.

Caractéristiques principales

  1. Large gamme d'algorithmeshashlibprend en charge plusieurs algorithmes de hachage, y compris des plus anciens comme MD5 et SHA-1 et des plus modernes comme SHA-256 et SHA-3.

  2. Interface Simple : Chaque algorithme de hachage possède une méthode de constructeur qui renvoie un objet de hachage. Vous pouvez alimenter cet objet avec des données en utilisant la méthode update et produire la valeur de hachage en utilisant les méthodes digest ou hexdigest.

  3. Sécurité : Bien que certains algorithmes tels que MD5 et SHA-1 présentent des vulnérabilités connues, hashlib inclut des options plus sécurisées comme SHA-256 et SHA-3.

Installation

hashlibest un module intégré et ne nécessite pas d'installation explicite.

Utilisation de base

Voici un exemple simple de la manière d'utiliserhashlibpour générer un hachage SHA-256 en utilisant le constructeur de hachage hashlib :

import hashlib
# Creating hash objects with SHA-256
hash_object = hashlib.sha256()
# Update the hash object with data
hash_object.update(b'IronPDF from IronSoftware is Awesome')
# Get the hexadecimal representation of the hash in  bytes object
hash_hex = hash_object.hexdigest() # hash_hex is digest object
print(hash_hex) # byte string
#Output: 6fc0c7d6af8eb51f0cd89281db55c6a6b76b5310226fa5af2272a8eb42cc1bfe
PYTHON

Fonctionnalités avancées

  • Support du Multithreading : Avec la fonction de hachage cryptographique, hashlib libère le verrou global de l'interprète(GIL)lors du calcul d'un hachage si plus de 2047 octets de données sont fournis en une seule fois, permettant une meilleure performance dans les applications multi-threadées.
  • Algorithmes de hachage personnalisés : Si la bibliothèque hashlib de votre distribution Python est liée à une version d'OpenSSL qui fournit des algorithmes supplémentaires, vous pouvez y accéder via le nouveau() méthode.

Types divers de hachage utilisant le module HashLib

1. Hachage simple

import hashlib
# Simple hashing example
data = b'Hello, World!'
hash_object = hashlib.sha256(data)
hex_dig = hash_object.hexdigest()
print("SHA-256 Hash:", hex_dig)
#output
SHA-256 Hash: dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f
PYTHON

Le code génère un SHA-256 pour les données d'entrée passées

2. Utilisation de différentes tailles de condensés

import hashlib
# Hashing with different digest sizes
data = b'Hello, World!' # convert to binary data
hash_md5 = hashlib.md5(data).hexdigest()
hash_sha256 = hashlib.sha256(data).hexdigest()
hash_sha512 = hashlib.sha512(data).hexdigest()
print("MD5 Hash (hex):", hash_md5)
print("SHA-256 Hash (hex):", hash_sha256)
print("SHA-512 Hash (hex):", hash_sha512)
#output hash digest with only hexadecimal digits
MD5 Hash (hex): 65a8e27d8879283831b664bd8b7f0ad4
SHA-256 Hash (hex): dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f
SHA-512 Hash (hex): 374d794a95cdcfd8b35993185fef9ba368f160d8daf432d08ba9f1ed1e5abe6cc69291e0fa2fe0006a52570ef18c19def4e617c33ce52ef0a6e5fbe318cb0387
PYTHON

Le code génère des hachages pour md5, sha256, et sha512 en utilisant les données passées.

3. Hachage avec clé

import hashlib
from hashlib import blake2b
# Keyed hashing example
h = blake2b(key=b'pseudorandom key', digest_size=16)
h.update(b'message data')
print(h.hexdigest())
#output
3d363ff7401e02026f4a4687d4863ced
PYTHON

4. Hachage aléatoire

import hashlib
import os
# Randomized hashing example (Salsa20)
data = b'Hello, World!'
salt = os.urandom(16)  # Generate a random salt
hash_object = hashlib.pbkdf2_hmac('sha256', data, salt, 100000)
hex_dig = hash_object.hex()
print("Randomized Hash (SHA-256):", hex_dig)
#output
Randomized Hash (SHA-256): a2a3c1a30a2add1867d55eac97fd9c84dc679691c0f15ae09c01e1bcc63ba47a
PYTHON

Ces exemples couvrent le hachage de base en utilisant différentes tailles de condensé. Des ajustements peuvent être effectués en fonction des exigences ou préférences spécifiques, comme l'utilisation de différents algorithmes ou paramètres.

Applications pratiques

  1. Intégrité des données : Les fonctions de hachage sont généralement utilisées pour confirmer l'intégrité des enregistrements. En comparant le hachage des données d'origine avec celui des données reçues, vous pouvez vous assurer que les données n'ont pas été modifiées.

  2. Stockage de Mot de Passe : Les fonctions de hachage sont souvent utilisées pour stocker les mots de passe de manière sécurisée. Le système stocke le hachage du mot de passe au lieu du mot de passe réel. Lorsque l'utilisateur se connecte, le hachage du mot de passe saisi est comparé avec le hachage stocké.

  3. Signatures numériques : Les fonctions de hachage sont couramment utilisées pour créer des signatures numériques, qui vérifient l'authenticité et l'intégrité d'un message.

Présentation d'IronPDF

hashlib Python((Comment ça fonctionne : Un guide pour les développeurs)) : Figure 1 - IronPDF for Python : La bibliothèque PDF Python

IronPDFest une puissante bibliothèque Python pour créer, modifier et signer des PDF à l'aide de HTML, CSS, images et JavaScript. Il offre des capacités de haute performance avec une utilisation minimale de la mémoire. Les utilisateurs peuventgénérer des PDF à partir de HTML, fusionner oudiviser Documents PDF,extraire du texte et des images des PDF, poser sa candidaturefiligranes, rasteriser un PDF en image comme JPEG et PNG,crypter les fichiers PDFet bien d'autres choses encore. IronPDF offre une large gamme d'opérations PDF.

Principales caractéristiques d'IronPDF

Conversion de HTML en PDF

Les utilisateurs peuvent convertir des fichiers HTML, des chaînes HTML et des URL en PDFs. Par exemple,rendre une page web sous forme de PDFen utilisant le moteur de rendu PDF Chrome d'IronPDF de IronPDF.

Support multiplateforme

IronPDF est conçu pour les versions Python 3+ et fonctionne sur Windows, Mac, Linux ou les plateformes cloud.

IronPDF est également disponible en.NET, Java, PythonetNode.js.

Édition et signature

L'utilisateur peut définir des propriétés, ajouter de la sécurité avec mots de passe et autorisationsetappliquer des signatures numériquesen PDF à l'aide d'IronPDF.

Modèles de page et paramètres

IronPDF vous permet de personnaliser des documents PDF avecles en-têtes, les pieds de page, numéros de page et marges ajustables. Il prend également en charge les mises en page réactives et les formats de papier personnalisés.

Respect des normes

Le package IronPDF respecte également les normes PDF telles que PDF/A et PDF/UA. Il prend en chargeCodage des caractères UTF-8 et gère les actifs tels que les images, les CSS et les polices.

Générez des documents PDF en utilisant IronPDF et le module HashLib

Conditions préalables pour IronPDF

  1. IronPDF utilise .NET 6.0 comme technologie sous-jacente. Veillez donc à ce que.NET 6.0 runtime est installé sur votre système.

  2. Python 3.0+ : Vous devez avoir installé la version 3 de Python ou une version ultérieure.

  3. Pip : Installer le gestionnaire de paquets Pythontuyau pour installer le paquet IronPDF.

    Pour commencer, créons un fichier Python pour ajouter nos scripts. Pour cet exemple, nous utilisonsCode Visual Studio comme éditeur de code.

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

    Installer la bibliothèque IronPDF :

pip install ironpdf

Ajoutez ensuite le code ci-dessous pour démontrer l'utilisation des packages Python IronPDF et Hashlib

import hashlib
import os
from hashlib import blake2b
from ironpdf import * 
# Apply your license key
License.LicenseKey = "your key"
# Create a PDF from a HTML string using Python
content = "<h1>Awesome Iron PDF with hashlib</h1>"
content += "<p>Data for all the below examples = IronPDF from IronSoftware is Awesome</p>"
content += "<h2> Simple hashing example</h2>"
content += "<p></p>"
# Simple hashing example
data = b'IronPDF from IronSoftware is Awesome'
content += "<p>hashlib.sha256(data)</p>"
hash_object = hashlib.sha256(data)
hex_dig = hash_object.hexdigest()
print("SHA-256 Hash:", hex_dig)
content += "<p>SHA-256 Hash:"+str(hex_dig)+"</p>"
content += "<h2> Hashing with different digest sizes</h2>"
# Hashing with different digest sizes
hash_md5 = hashlib.md5(data).hexdigest()
content += "<p>hashlib.md5(data).hexdigest()</p>"
hash_sha256 = hashlib.sha256(data).hexdigest()
content += "<p>hashlib.sha256(data).hexdigest()</p>"
hash_sha512 = hashlib.sha512(data).hexdigest()
content += "<p>hashlib.sha512(data).hexdigest()</p>"
print("MD5 Hash (hex):", hash_md5)
print("SHA-256 Hash (hex):", hash_sha256)
print("SHA-512 Hash (hex):", hash_sha512)
content += "<p>MD5 Hash (hex):"+str(hash_md5)+"</p>"
content += "<p>SHA-256 Hash (hex):"+str(hash_sha256)+"</p>"
content += "<p>SHA-512 Hash (hex):"+str(hash_sha512)+"</p>"
# Keyed hashing example
content += "<h2> Keyed hashing example</h2>"
h = blake2b(key=b'pseudorandom key', digest_size=16)
content += "<p></p>"
h.update(data)
print(h.hexdigest())
content += "<p>Keyed Hash (hex):"+str(h.hexdigest())+"</p>"
# Randomized hashing example 
content += "<h2> Randomized hashing example </h2>"
salt = os.urandom(16)  # Generate a random salt
hash_object = hashlib.pbkdf2_hmac('sha256', data, salt, 100000)
content += "<p>hashlib.pbkdf2_hmac('sha256', data, salt, 100000)</p>"
hex_dig = hash_object.hex()
print("Randomized Hash (SHA-256):", hex_dig)
content += "<p>Randomized Hash (SHA-256):"+str(hex_dig)+"</p>"
#Generate PDF using IronPDF
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(content)
    # Export to a file or Stream
pdf.SaveAs("Demo-hashlib.pdf")
PYTHON

Explication du code

Le code fourni présente l'utilisation de diverses techniques de hachage en utilisant la bibliothèque `hashlib` de Python :

  1. Exemple de hachage simple : Calcule le hachage SHA-256 d'une chaîne de données spécifique(IronPDF de Iron Software est génial).

  2. Hachage avec différentes tailles de digests : Cette section montre le hachage en utilisant les algorithmes MD5, SHA-256 et SHA-512 sur la même chaîne de données.3. Exemple de hachage à clé : Cet exemple utilise la fonction de hachage `blake2b` avec une clé spécifiée(clé pseudo-aléatoire)pour effectuer un hachage avec clé sur les données.

  3. Exemple de Hachage Aléatoire : Utilise l'algorithme PBKDF2-HMAC avec SHA-256 pour générer un hachage aléatoire avec un sel généré aléatoirement.5. Génération de PDF : Après avoir démontré les exemples de hachage, le code génère un document PDF à l'aide d'IronPDF, qui inclut le contenu HTML présentant les exemples de hachage.

    Chaque exemple illustre différents aspects du hachage cryptographique, tels que le hachage standard, le hachage avec clé et les techniques de hachage aléatoire.

Sortie

hashlib Python((Comment ça fonctionne : Un guide pour les développeurs)) : Figure 2 - Exemple de sortie de console

PDF (EN ANGLAIS)

hashlib Python(Comment cela fonctionne : Un guide pour les développeurs) : Figure 3 - Exemple de sortie PDF utilisant IronPDF

Licence d'IronPDF

hashlib Python((Comment ça fonctionne : Un guide pour les développeurs)) : Figure 4 - Page de licence d'IronPDF

IronPDFfonctionne avec la clé de licence Python. IronPDF for Python offre une clé de licence d'essai gratuite pour permettre aux utilisateurs de tester ses nombreuses fonctionnalités avant de l'acheter.

Placez la clé de licence au début du script avant de l'utiliserPaquet IronPDF:

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

Conclusion

Le module hashlib est essentiel à la bibliothèque standard de Python, offrant des fonctions de hachage robustes et sécurisées pour diverses applications. Que vous garantissiez l'intégrité des données, stockiez des mots de passe en toute sécurité ou créiez des signatures numériques, hashlib offre les outils nécessaires. D'un autre côté,IronPDFest une bibliothèque puissante pour la génération et la manipulation de PDF. Avec ces deux bibliothèques, les développeurs peuvent rapidement générer des hachages et les stocker au format PDF.

Regan Pun

Regan Pun

Ingénieur logiciel

 LinkedIn

Regan est diplômé de l'université de Reading, où il a obtenu une licence en ingénierie électronique. Avant de rejoindre Iron Software, il s'était concentré sur une seule tâche. Ce qu'il apprécie le plus chez Iron Software, c'est la diversité des tâches qu'il peut accomplir, qu'il s'agisse d'apporter une valeur ajoutée aux ventes, à l'assistance technique, au développement de produits ou à la commercialisation. Il aime comprendre comment les développeurs utilisent la bibliothèque d'Iron Software et utiliser ces connaissances pour améliorer continuellement la documentation et développer les produits.
SUIVANT >
XGBoost Python (Comment cela fonctionne : Un guide pour les développeurs)