L'autre jour, j'ai lu l'article ici et je veux aussi le hacher et surpasser l'Egosa du Ministre 67344549d15075a087a77f88e1ad920b21a387a9! J'y ai pensé et étudié le hachage de python. Donc, cette fois, j'aimerais partager ce que j'ai appris.
-L'algorithme convertit la chaîne de caractères en une chaîne de caractères avec une régularité invisible. (Exemple) Avant le hachage: échantillon ↓ Après le hachage: b80f059f7c6301c6fb2a34615edca2634bc65fa6
-Il existe de nombreux types d'algorithmes de hachage. -La chaîne de caractères générée par le hachage est appelée valeur de hachage. -Il est difficile d'estimer la chaîne de caractères d'origine à partir de la valeur de hachage. En d'autres termes, il est facile de convertir des "données d'origine en valeur de hachage", mais il est difficile d'estimer "les données d'origine en données d'origine". -Depuis qu'il est généré par l'algorithme spécifié, la même valeur de hachage est générée quel que soit le nombre de fois que les mêmes données sont hachées. -Si les données d'origine changent un peu, la valeur de hachage générée sera complètement différente. Il existe des fonctionnalités telles que.
hash_list.py
import hashlib
print(sorted(hashlib.algorithms_guaranteed))
#['blake2b', 'blake2s', 'md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha3_224', 'sha3_256', 'sha3_384', 'sha3_512', 'sha512', 'shake_128', 'shake_256']
print(sorted(hashlib.algorithms_available))
#['DSA', 'DSA-SHA', 'MD4', 'MD5', 'MDC2', 'RIPEMD160', 'SHA', 'SHA1', 'SHA224', 'SHA256', 'SHA384', 'SHA512', 'blake2b', 'blake2s', 'dsaEncryption', 'dsaWithSHA', 'ecdsa-with-SHA1', 'md4', 'md5', 'mdc2', 'ripemd160', 'sha', 'sha1', 'sha224', 'sha256', 'sha384', 'sha3_224', 'sha3_256', 'sha3_384', 'sha3_512', 'sha512', 'shake_128', 'shake_256', 'whirlpool']
algorithms_guaranteed: Affiche les algorithmes de hachage "support standard". algorithms_available: affiche les algorithmes de hachage «disponibles».
Cette fois, j'en présenterai trois.
hash_sample.py
import hashlib
hash_before_word = 'Je ne veux pas travailler'
# MD5
hash_after_word_md5 = hashlib.md5(hash_before_word.encode()).hexdigest()
print(hash_after_word_md5)
#450ba26c03d7740818d9b0f2bb97bc5
# blake2b
hash_after_word_blake2b = hashlib.blake2b(hash_before_word.encode()).hexdigest()
print(hash_after_word_blake2b)
#52e284d94dfdc8e88c2926f234907127e98738e03e96f21a510e4822e0891385154430de8c047a4c4868199aad8b8db093d3a995952d17c738e77cab7875acf9
# sha224
hash_after_word_sha224 = hashlib.sha224(hash_before_word.encode()).hexdigest()
print(hash_after_word_sha224)
De cette façon, il peut être haché par plusieurs algorithmes de hachage. Si vous souhaitez utiliser un autre algorithme de hachage, changez simplement le nom de l'algorithme de hachage.
Cette fois, j'ai introduit l'algorithme de hachage en utilisant python. 67344549d15075a087a77f88e1ad920b21a387a9 Veuillez l'utiliser pour éviter l'egosa du ministre et gérer les mots de passe. (Cependant, gardez l'éthique)
Non, c'est ffd4a94997286e73f1031aa7464b0d0cd1213bfd.
https://docs.python.org/ja/3/library/hashlib.html
Recommended Posts