Maison >développement back-end >Tutoriel Python >Introduction détaillée aux algorithmes de chiffrement Python md5 et sha1

Introduction détaillée aux algorithmes de chiffrement Python md5 et sha1

零下一度
零下一度original
2017-07-16 13:55:052975parcourir

Cet article présente brièvement le concept et le principe de l'algorithme de chiffrement sha1 de niveau md5 et analyse les compétences opérationnelles spécifiques de Python en utilisant le module hashlib pour implémenter les fonctions de chiffrement sous forme d'exemples. il peut y faire référence

S'il y a trop de contenu chiffré par md5 et sha1, vous pouvez l'utiliser comme ceci :

[python]  
m = hashlib.md5()  
m.update('a')  
m.update('b')  
s = m.hexdigest()  
#效果等于m = hashlib.md6('ab').hexd

MD5

Le nom complet de MD5 est Message -Digest Algorithm 5 (Information-Digest algorithm), développé au début des années 1990 par Ronald L. Rivest du Laboratoire d'informatique du MIT et de sécurité des données RSA. Inc., développé à partir de MD2, MD3 et MD4. Il s'agit d'un algorithme de cryptage irréversible. Il s'agit actuellement de l'un des algorithmes de cryptage les plus fiables. Aucun programme capable d'inverser l'opération n'a encore été développé. Il peut crypter n'importe quelle chaîne en un code unique de longueur fixe. .

Caractéristiques :

Tout d'abord, c'est irréversible, il n'existe pas de moyen systématique de savoir quel est le texte original du code MD5

Deuxièmement, ce code est très discret et n'a aucune règle à suivre. Même un petit changement dans les informations d'origine entraînera un énorme changement dans MD5. On peut également dire que le code MD5 généré est imprévisible.

Enfin, comme ce code fait 128 bits, la possibilité d'avoir le même code MD5 entre n'importe quel message est très faible et est généralement considérée comme impossible.

Utilisations :

On pense généralement que le code MD5 peut représenter de manière unique les caractéristiques des informations originales et est généralement utilisé pour le stockage crypté de mots de passe, de signatures numériques, vérification de l'intégrité des fichiers, etc.

SHA1

Le nom complet de SHA1 est Secure Hash Algorithm (SecureHash Algorithm ), conçu par NIST NSA. Utilisé avec DSA, il génère une valeur de hachage de 160 bits pour les entrées d'une longueur inférieure à 264, ce qui le rend plus résistant à la force brute. SHA-1 est conçu sur la base des mêmes principes que MD4 et imite cet algorithme. SHA-1 est une norme nationale promulguée par le National Institute of Standards and Technology (NIST). Il s'agit de l'algorithme de hachagefonction le plus utilisé actuellement par les ministères et les ministères. propriétaires privés. Traitement d’informations sensibles. SHA-1 est basé sur MD5, lui-même basé sur MD4.

SHA-1 possède 32 bits de texte chiffré de plus que MD5, il est donc plus sécurisé. MD5 fonctionne plus rapidement que SHA-1 pour la même raison.

Exemple d'utilisation :

Le module hashlib en Python est une bibliothèque qui fournit spécifiquement des algorithmes de hachage. Il inclut désormais md5, sha1, sha224, sha256, sha384, sha512, très simple et pratique à utiliser. L'utilisation est la suivante :


import hashlib
hash_new = hashlib.sha1() #或hashlib.md5()
with open('driver.xml.tar.bz2','rb') as fp: #打开文件,一定要以二进制打开
  while True:
    data = fp.read() #读取文件块
    if not data: #直到读完文件
      break
    hash_new.update(data)
hash_value = hash_new.hexdigest() #生成40位(sha1)或32位(md5)的十六进制字符串
print hash_value

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn