Vous êtes sur la page 1sur 15

Hachage sécurisé en Python

Mohamed Wajih Guerfala


Rihem Ben Romdhane

TEK-UP

Année Universitaire 2023-2024


Rihem Ben Romdhane & Mohamed Wajih Guerfala TEK-UP A.U: 2023 -2024
Sommaire

1 Introduction

2 Module Python Hashlib

Rihem Ben Romdhane & Mohamed Wajih Guerfala TEK-UP A.U: 2023 -2024
Introduction

Introduction

Rihem Ben Romdhane & Mohamed Wajih Guerfala TEK-UP A.U: 2023 -2024
Introduction

Notion Hachage

La fonction de hachage en cryptographie est conçue pour prendre une


suite de bits de longueur quelconque en entrée (texte, fichier…) et
produire une valeur de hachage de longueur fixe en sortie.. Nous
examinerons également les propriétés des fonctions de hachage sécurisées

Exemple d’utilisation:
Le stockage de mots de passe et d'autres informations sensibles dans des
bases de données ou des fichiers de code source. Dans de tels cas, il est
plus sûr d'exécuter l'algorithme de hachage sur les informations sensibles
et de stocker le hachage au lieu de l'information.

Rihem Ben Romdhane & Mohamed Wajih Guerfala TEK-UP A.U: 2023 -2024
Introduction

Comparaison entre Hachage et cryptage

La fonction de cryptage permet d’avoir un résultat crypté d’un message ou


un texte en clair à l'aide d'un algorithme de cryptage. Nous pouvons
ensuite exécuter l'algorithme de décryptage sur le résultat crypté pour
récupérer la chaîne du message.

Rihem Ben Romdhane & Mohamed Wajih Guerfala TEK-UP A.U: 2023 -2024
Introduction

Comparaison entre Hachage et cryptage

La fonction de Hachage fonctionne différemment à la fonction de cryptage


puisque son processus inversible, ce qui signifie qu'il n'est pas possible de
passer du hachage au message d'entrée.

Rihem Ben Romdhane & Mohamed Wajih Guerfala TEK-UP A.U: 2023 -2024
Introduction

Propriétés des fonctions de hachage

Certaines propriétés auxquelles les fonctions de hachage doivent


satisfaire :

Déterministe: les fonctions de hachage sont déterministes. Étant donné un


message m, le hachage de m est toujours le même.

Résistante à la préimage: Le processus du hachage est une opération


inversible. La propriété de résistance à la préimage indique qu'il est
impossible de trouver le message m à partir du hachage de sortie.

Rihem Ben Romdhane & Mohamed Wajih Guerfala TEK-UP A.U: 2023 -2024
Introduction

Propriétés des fonctions de hachage

Certaines propriétés auxquelles les fonctions de hachage doivent


satisfaire :

Résistance aux collisions: il doit être difficile (ou infaisable sur le plan
informatique) de trouver deux chaînes de messages différentes m1 et m2
de sorte que le hachage de m1 soit égal à celui de m2. Cette propriété est
appelée résistance aux collisions.

Deuxièmement, la résistance aux préimages: cela signifie qu'étant donné


un message m1 et le hachage correspondant m2, il est impossible de
trouver un autre message m2 tel que hash(m1) = hash(m2).

Rihem Ben Romdhane & Mohamed Wajih Guerfala TEK-UP A.U: 2023 -2024
Module Python Hashlib

Module Python Hashlib

Rihem Ben Romdhane & Mohamed Wajih Guerfala TEK-UP A.U: 2023 -2024
Module Python Hashlib

Définition

Le module hashlib est un module python qui fournit une collection de


fonctions de hachage cryptographique.
Ces fonctions peuvent être utilisées pour générer une valeur de hachage
unique de taille fixe à partir d'une entrée de n'importe quelle taille.
Certaines des fonctions de hashlib incluent SHA-1, SHA-256 et MD5.

Pour utiliser les constructeurs et les fonctions intégrées du module Python


hashlib, if faut faire appelle à sa bibliothèque:

import hashlib

Rihem Ben Romdhane & Mohamed Wajih Guerfala TEK-UP A.U: 2023 -2024
Module Python Hashlib

Fonctions intégrées Module hashlib

Le module hashlib fournit les constantes algorithms_available et


algorithms_guaranteed, qui désignent l'ensemble des algorithmes dont les
implémentations sont respectivement disponibles et garanties sur une
plateforme.

print(hashlib.algorithms_available)
print(hashlib.algorithms_guaranteed)

Rihem Ben Romdhane & Mohamed Wajih Guerfala TEK-UP A.U: 2023 -2024
Module Python Hashlib

Les méthodes Python Bytes encode() & decode()

La méthode Python string encode() est utilisée pour coder la chaîne à l'aide
de l'encodage fourni. Cette fonction renvoie l'objet bytes. Si nous ne
fournissons pas d'encodage, l'encodage "utf-8" est utilisé par défaut.

Syntaxe:

import string.encode (encoding=encoding, errors=errors)

La méthode Python string decode() est utilisée pour convertir des octets en
objet chaîne.

Syntaxe:

import string.decode (encoding=encoding, errors=errors)

Rihem Ben Romdhane & Mohamed Wajih Guerfala TEK-UP A.U: 2023 -2024
Module Python Hashlib

Exemple pour les méthodes encode() & decode()

# coding: utf-8
Text = 'Test Codage - Decodage'
Text1= b'Test Codage - Decodage'
encodeBytes = Text.encode(encoding='utf-8') # ou = 'ascii'
print(encodeBytes)
print(type(encodeBytes))

Text_decode = encodeBytes.decode()
print(type(Text_decode))

print('Encoded bytes =', encodeBytes)


print('Decoded String =', Text_decode)
print('my_string equals my_string_decode =',Text == Text_decode)

Rihem Ben Romdhane & Mohamed Wajih Guerfala TEK-UP A.U: 2023 -2024
Module Python Hashlib

Exemple d'usage du module hashlib

import hashlib
# La chaîne de caractères à hasher
string_to_hash = "Tek-UP is My University"

# Création d'un objet hash SHA-256 de deux façons


hash_object = hashlib.sha256()
hash_object = hashlib.new("SHA256")

# Mise à jour de l'objet hash avec la chaîne de caractères à hasher


hash_object.update(string_to_hash.encode())
# Récupération du hash en hexadécimal
hex_hash = hash_object.hexdigest()

print(f"Hash de la chaîne '{string_to_hash}' : {hex_hash}")


Rihem Ben Romdhane & Mohamed Wajih Guerfala TEK-UP A.U: 2023 -2024
Thank you!

Rihem Ben Romdhane & Mohamed Wajih Guerfala TEK-UP A.U: 2023 -2024

Vous aimerez peut-être aussi