Hash avec python et échapper à l'égosa d'un certain ministre

introduction

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.

Vue d'ensemble du hachage

-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.

Confirmation de l'algorithme compatible hashlib

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».

Exemple de code

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.

Résumé

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.

référence

https://docs.python.org/ja/3/library/hashlib.html

Recommended Posts

Hash avec python et échapper à l'égosa d'un certain ministre
Obtenez des données de VPS MySQL avec Python 3 et SQL Alchemy
Un mémo contenant Python2.7 et Python3 dans CentOS
2.Faites un arbre de décision à partir de 0 avec Python et comprenez-le (2. Bases du programme Python)
python + faker Générer aléatoirement un point avec un rayon de 100m à partir d'un certain point
Créez un arbre de décision à partir de 0 avec Python et comprenez-le (4. Structure des données)
Créez un arbre de décision à partir de 0 avec Python et comprenez-le (5. Entropie des informations)
Construire un environnement python avec virtualenv et direnv
Lancer un serveur Web avec Python et Flask
Créer un arbre de décision à partir de 0 avec Python (1. Présentation)
Lire ligne par ligne à partir d'un fichier avec Python
Extraire des données d'une page Web avec Python
WEB grattage avec python et essayez de créer un nuage de mots à partir des critiques
Créez un environnement virtuel python avec virtualenv et virtualenvwrapper
Essayez de créer un jeu simple avec Python 3 et iPhone
J'ai essayé de faire LINE BOT avec Python et Heroku
Créez un environnement virtuel python avec virtualenv et virtualenvwrapper
Recevoir des e-mails de Gmail et étiqueter avec Python3
[Python] Démarrez un fichier de commandes à partir de Python et passez des variables.
Effectuez une recherche Twitter à partir de Python et essayez de générer des phrases avec la chaîne de Markov.
Programmation avec Python et Tkinter
Un mémo qui lit les données de dashDB avec Python et Spark
Chiffrement et déchiffrement avec Python
Créez un arbre de décision à partir de zéro avec Python et comprenez-le (3. Bibliothèque d'analyse de données édition Pandas)
Python et matériel - Utilisation de RS232C avec Python -
Associez Python Enum à une fonction pour la rendre appelable
Feuille de route d'apprentissage qui vous permet de développer et de publier des services à partir de zéro avec Python
Créons un diagramme PRML avec Python, Numpy et matplotlib.
Procédure d'installation pour Python et Ansible avec une version spécifique
Détecter les objets d'une couleur et d'une taille spécifiques avec Python
Résolution avec Ruby, Perl, Java et Python AtCoder ATC 002 A
J'ai créé un serveur avec socket Python et ssl et j'ai essayé d'y accéder depuis le navigateur
Essayez d'ouvrir une sous-fenêtre avec PyQt5 et Python
Faites une loterie avec Python
Python: créer un dictionnaire à partir d'une liste de clés et de valeurs
python avec pyenv et venv
Collecte d'informations sur Twitter avec Python (intégration de MySQL et Python)
Bibliothèque pour spécifier un serveur de noms en python et dig
Créer un répertoire avec python
Avec skype, notifiez avec skype de python!
Tirez en accéléré à partir d'une caméra PC en utilisant Python, OpenCV
Fonctionne avec Python et R
[5e] J'ai essayé de créer un certain outil de type Authenticator avec python
J'ai fait un circuit simple avec Python (AND, OR, NOR, etc.)
[2nd] J'ai essayé de créer un certain outil de type Authenticator avec python
Créez un environnement Python 2.7 64 bits avec TDM-GCC et MinGW-w64 sous Windows 7
Créez un environnement Python sur votre Mac avec Anaconda et PyCharm
Créez une illusion rayée avec correction gamma pour Python3 et openCV3
[3ème] J'ai essayé de créer un certain outil de type Authenticator avec python
Comment créer une caméra de surveillance (caméra de sécurité) avec Opencv et Python
Essayez d'extraire une chaîne de caractères d'une image avec Python3
Créez un simple OMR (lecteur de feuille de marque) avec Python et OpenCV
J'ai créé un formulaire de tweet Nyanko avec Python, Flask et Heroku
Dessinez une illusion d'aquarelle avec détection des contours en Python3 et openCV3
J'ai essayé de faire un processus d'exécution périodique avec Selenium et Python
Lisez le fichier en Python avec un chemin relatif depuis le programme
Créez une application de scraping avec Python + Django + AWS et modifiez les tâches
Résolvez le problème du sac à dos Python avec la méthode de branche et liée
[4th] J'ai essayé de créer un certain outil de type Authenticator avec python
[1er] J'ai essayé de créer un certain outil de type Authenticator avec python