Python Hashlib MD5

Python Hashlib MD5
Les fonctions de hachage sont des méthodes / fonctions qui peuvent accepter les données de différentes tailles en tant que message d'entrée et de sortie Hachage ou digestion qui est une données cipières d'une taille définie. L'intégrité des données peut être évaluée en utilisant cette valeur. Une fonction de hachage cryptographique comprend le hachage MD5. Une valeur de hachage est ajoutée à chaque paquet de données avant d'être envoyée ou transmise sur Internet. Le serveur calcule le hachage lorsque les données sont reçues et les vérifient / les vérifient avec la valeur de hachage liée / jointe. Les paquets de données ne sont acceptés que si la valeur de hachage transmise et la valeur de hachage attachée sont les mêmes. Sinon, cela indique que les données ont changé. Ce changement peut être résulté de la perte de données, de la falsification des données, des erreurs de bruit ou par un tiers. Dans ce tutoriel, nous enseignerons l'utilisation et le fonctionnement du hachage MD5 à Python.

Qu'est-ce que le hachage MD5 à Python?

L'une des méthodes de hachage fournies par le module de hashlib de Python est le hachage MD5. Pour effectuer les calculs de hachage, il est principalement utilisé dans les fonctions cryptographiques. Le hachage peut également être utilisé pour créer des caches d'ensembles de données massifs, vérifier les mots de passe, vérifier les empreintes digitales, vérifier l'intégrité des fichiers, etc. Il prend une chaîne d'octet comme entrée et sort une chaîne hexadécimale comme valeur codée. Une valeur de hachage 128 bits est produite lors du codage des données de chaîne à un hachage MD5. Vous devez être prudent lorsque vous choisissez le codage du caractère pour convertir les données de texte en binaire avant le hachage, car les algorithmes de hachage fonctionnent souvent avec des données binaires plutôt que des données textuelles. Le hachage entraîne également des données binaires.

Les fonctions associées au hachage MD5 sont:

encoder(): Il crée des octets à partir de la chaîne afin que la fonction de hachage puisse les utiliser.

digérer(): Il renvoie les données codées ou chiffrées sous forme d'octets.

hexdigest (): Le format hexadécimal des données codées est renvoyé à l'aide de cette fonction.

Avantages de MD5

  • Les hachages plus petits peuvent être comparés et stockés plus facilement en utilisant MD5 que les textes plus grands de longueurs variables.
  • Les mots de passe sont enregistrés / stockés au format 128 bits à l'aide de l'algorithme MD5.
  • Chaque paquet de données ajoute une valeur de hachage avant la transmission des données. Vous pouvez rechercher la corruption des fichiers une fois les données reçues par le serveur. La vérification de l'intégrité du fichier est valide tant que les hachages correspondent pour éviter une corruption de données.
  • À l'aide de MD5, un message de message peut être simplement généré à partir d'un message original.

Comment utiliser le hachage MD5 dans Python?

Comment obtenir MD5 des objets de chaîne et des fichiers sont démontrés dans la section suivante.

Calcul de la valeur de hachage MD5 d'une chaîne

Le calcul de la valeur de hachage d'un objet de chaîne dans Python implique généralement quatre étapes:

  1. Création ou chargement d'une valeur de chaîne.
  2. Convertir la chaîne en octets.
  3. Encryport les données en octets en valeur de hachage MD5.
  4. Afficher ou renvoyer les données sous forme d'octets (en utilisant digest ()) ou sous forme d'hexadécimal (en utilisant hexdigest ()).

La variable de chaîne «String» est définie avec un codage binaire dans le script précédent. Le «hashlib.La méthode MD5 »peut donc être utilisée pour crypter directement la chaîne. La sortie codée est affichée à l'aide de la fonction de digestion. Une chaîne binaire peut ne pas toujours être disponible en entrée. Dans de tels scénarios, vous devez d'abord convertir les données en une séquence binaire avant de la passer à l'algorithme de hachage MD5.

Nous regardons maintenant quelques exemples pour calculer le hachage MD5 d'un objet de chaîne.

Exemple 1: Impression des données de chaîne en octets équivalents au hachage MD5

Pour utiliser la fonction MD5, nous devons d'abord importer le module Hashlib. Nous transmettons des données de chaîne à l'intérieur de la fonction MD5. Ensuite, nous imprimons sous la forme de la valeur de hachage MD5 ainsi que sous la forme d'octets.

La fonction de hachage peut accepter les octets comme entrée. Ainsi, nous passons les cordes sous forme d'octets à la fonction md5 () dans le code précédent. La méthode du hachage MD5 crypte ensuite les données fournies. Enfin, nous utilisons la fonction digest () pour générer l'équivalent d'octet de la chaîne codée du hachage MD5.

Exemple 2: Impression des données de chaîne en hexadécimal équivalent au hachage MD5

Maintenant, nous imprimons les données en hexadécimal après l'avoir codé dans le hachage MD5. Dans l'exemple précédent, nous utilisons «B» juste avant la valeur de la chaîne pour coder la chaîne en octets. Ici, nous appliquons la fonction encoder () sur la chaîne pour la coder. Les deux approches donnent des résultats identiques. Cependant, nous pouvons spécifier le format de codage de notre choix à l'aide de la fonction Encode ().

Ici, nous utilisons la fonction Encode () pour transformer les données de chaîne spécifiées en un octet afin qu'il puisse être transmis à une fonction de hachage qui l'accepterait. Ensuite, il est codé avec la fonction MD5. Enfin, sa valeur hexadécimale est renvoyée en utilisant la méthode hexidest ().

Calcul de la valeur de hachage MD5 d'un fichier

Le hashlib module intégré de Python peut également être utilisé pour créer le hachage MD5 d'un fichier

Exemple 1: La valeur de hachage MD5 d'un petit fichier dans Python

Vous devez savoir que spécifiant simplement un nom de fichier dans le hashlib.La fonction md5 (), comme dans l'exemple suivant, ne renvoie pas la valeur de hachage du fichier.

La valeur renvoyée n'est pas le hachage MD5 de notre fichier. Mais c'est la valeur de hachage MD5 du «Python.Txt ”String.

Pour obtenir la bonne valeur de hachage MD5 du fichier, vous devez d'abord lire le fichier en octets. Il est facile, tout ce que nous avons à faire est de lire le contenu du fichier et de le convertir en octets. L'octet est ensuite transmis à Hashlib.md5 () pour obtenir la valeur de hachage MD5.

Comme on peut le voir, la fonction calcule la valeur de hachage MD5 du fichier avec succès.

Exemple 2: La valeur de hachage MD5 d'un grand fichier dans Python

Si le fichier est de 10 Go de taille, disons que c'est un grand fichier journal, un vidage de trafic, un jeu vidéo, etc., il utiliserait probablement toute votre mémoire si vous essayez d'en créer un hachage MD5. Dans un tel cas, nous pouvons lire les grands fichiers dans des morceaux d'octets, qui est un moyen économe en mémoire de calculer les hachages MD5. La taille des morceaux dépend de votre exigence, de la taille de votre fichier, de la mémoire de votre système, etc. Par conséquent, dans cette procédure, nous traitons séquentiellement les morceaux tout en mettant à jour le hachage. En conséquence, le hachage MD5 est mis à jour 100 fois au cours de ce processus, s'il y a 100 morceaux de fichier de ce type.

Nous lisons les données sur des morceaux en utilisant l'aide d'une boucle de temps pendant que la valeur de hachage MD5 est mise à jour à l'aide de la fonction Update ().

Comparez et validez le hachage MD5 d'un fichier

Au serveur ou en utilisant une logique dans votre code, nous devons valider le hachage MD5 des données ou du fichier. Nous créons à nouveau le hachage MD5 du fichier d'origine pour vérifier le hachage. Après cela, comparez les valeurs MD5 générées par la source et nous.

Comme les deux valeurs, la valeur de Source_MD5 et la valeur de hachage MD5 de notre fichier correspondaient. Cela signifie que la valeur de hachage MD5 est vérifiée.

Conclusion

Nous avons d'abord appris les fonctions de hachage dans ce tutoriel. Nous avons expliqué ce que Hashlib.La fonction md5 () est et quelles fonctions y sont associées. Nous avons discuté de certains avantages et applications des fonctions de hachage MD5. Nous avons appris à utiliser le hashlib.Méthode MD5 () pour calculer la valeur de hachage MD5 d'une chaîne. Nous avons également mis en œuvre quelques exemples pour vous apprendre à calculer et à vérifier la valeur de hachage MD5 des petits et grands fichiers en python.