Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/clients/a4e6fc1ce1761b72982b805de0f418c4/web/python/mesrecettespython/inc/init.php on line 563
conversions_motdepasse_hexa [Les recettes Python de Tyrtamos]

Outils pour utilisateurs

Outils du site


conversions_motdepasse_hexa

Ceci est une ancienne révision du document !



Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /home/clients/a4e6fc1ce1761b72982b805de0f418c4/web/python/mesrecettespython/inc/parser/handler.php on line 1458

Warning: preg_match(): Compilation failed: invalid range in character class at offset 3565 in /home/clients/a4e6fc1ce1761b72982b805de0f418c4/web/python/mesrecettespython/inc/parser/lexer.php on line 118
A PCRE internal error occured. This might be caused by a faulty plugin

====== Conversion entre un mot de passe et sa représentation en chaîne hexadécimale ====== ===== Objectif ===== Je ne sais pas si c'est le cas général, mais je me suis déjà retrouvé dans la configuration d'un réseau wifi avec le problème suivant: * je choisis de mettre un mot de passe wep que je puisse mémoriser facilement. * mais dans la configuration de certains PC du réseau, on me demande ce même mot de passe sous forme exclusive de chaîne hexadécimale. Par exemple (mais ce n'est pas mon vrai mot de passe, hein ! :-D ) * mot de passe texte: machintruc789 (ce qui fait bien 13 caractères pour le wep) * traduction en chaîne hexa: "6D616368696E74727563373839" Vous voyez le principe: 'm' -> 0x6D, 'a' -> 0x61, etc... Bon, il suffit d'avoir fait cela une seule fois à la main pour comprendre: //**je veux une fonction qui fait ça automatiquement!**// La voilà: ===== Conversion mot de passe en texte -> chaîne hexa ===== <code python> def mdp2hex(ch): """mdp2hex(ch): Convertit en chaîne hexadécimale les mots de passe donnés en texte clair""" h="" for i in range(0,len(ch)): h+=str(hex(ord(ch[i])))[2:].upper() return h # exemple d'utilisation: print mdp2hex('machintruc789') # affiche: '6D616368696E74727563373839' print mdp2hex('') # affiche: '' </code> Si on vous demande de l'hexa avec A à F en minuscule, il suffit d'enlever le ".upper()". ===== Conversion chaîne hexa -> mot de passe en texte ===== <code python> def hex2mdp(ch): """hex2mdp(ch): Convertit en texte clair les mots de passe donnés en chaîne hexadécimale""" h="" for i in range(0,len(ch),2): h+=chr(int(ch[i:i+2],16)) return h print hex2mdp('6D616368696E74727563373839') # affiche: 'machintruc789' print hex2mdp('') # affiche: '' </code> Il faudrait ajouter 2 vérifications de données: * ch doit être une chaîne dont le nombre de caractère est pair: <code python> if (len(ch)%2)!=0: # => renvoie une erreur </code> * ch ne doit avoir que des caractères autorisés dans la numérotation hexa, c'est à dire: "0123456789ABCDEFabcdef" <code python> for car in ch: if not (car in "0123456789ABCDEFabcdef"): # => renvoie une erreur </code> Vous pouvez essayer tout cela sur ma calculatrice en ligne [[http://calculext.jpvweb.com]] <html> <head> <style type="text/css"> <!-- body {background-image:url(fondcorps.jpg);} --> </style> </head> <body> </body> </html>

conversions_motdepasse_hexa.1207982137.txt.gz · Dernière modification: 2008/04/12 08:35 par tyrtamos

Outils de la page