Ceci est un puzzle pour moi et je suis vraiment agacé que je ne peux pas le résoudre! Donc, si quelqu'un a du temps libre, je voudrais ici quelques suggestions sur la façon de le résoudre! J'utilise un logiciel qui stocke le mot de passe dans une base de données Oracle. Le champ mot de passe est de type Varchar2 (100 caractères). Il me semble que le logiciel code les mots de passe et stocke la chaîne encodée dans la base de données.Est-ce que cette chaîne est Base64? Comment puis-je savoir quel est le codage utilisé?
Mon mot de passe est '1234' et la chaîne codée est 'cRDtpNCeBiql5KOQsKVyrA0sAiA ='. Tous les mots de passe de la base de données ont une longueur de 28 caractères.
Le puzzle que je me suis assigné est de trouver l'encodage et/ou le cryptage de la chaîne. Mon premier chèque était base64
Voici donc mon premier test en python (inactif):
>>> import base64
>>> encoded = 'cRDtpNCeBiql5KOQsKVyrA0sAiA='
>>> decoded = base64.b64decode(encoded)
>>> decoded
'q\x10\xed\xa4\xd0\x9e\x06*\xa5\xe4\xa3\x90\xb0\xa5r\xac\r,\x02 '
>>> print decoded
qíᄂО*ᆬ䣐ᄚᆬrᆲ
,
Voici mon deuxième test:
>>> myString = '1234'
>>> encoded = base64.b64encode(myString)
>>> encoded
'MTIzNA=='
>>> decoded = base64.b64decode('MTIzNA==')
>>> decoded
'1234'
Alors, mon La première pensée est que ce n'est pas codé en Base64. Après avoir vérifié wikipedia (https://en.wikipedia.org/wiki/Base64), il semble que les chaînes encodées en Base64 ne sont pas de taille fixe. Ma deuxième pensée est que la chaîne a été cryptée et ensuite encodée en Base64 et c'est pourquoi j'ai la chaîne décodée bizarre.
Des idées?
pourrait être le codage base64 d'un hachage sha1 comme 'len (base64.b16encode (base64.b64decode ('cRDtpNCeBiql5KOQsKVyrA0sAiA =')))' est '40'? –
Je me demande comment il serait difficile de déchiffrer (ok, ce n'est pas vraiment décrypter) le hachage SHA1 dans le mot de passe puisque je connais toutes les contraintes (longueur minimale, longueur maximale, alpha, majuscules, chiffres, caractères spéciaux etc ...) Peut-être que je devrais poser une autre question! :) –
Dan Je ne comprends pas pourquoi vous utilisez b16encode, pouvez-vous expliquer? –