2015-07-16 1 views
0

J'utilise cette méthode pour chiffrer ma chaîne:Oracle Hash décryptage MD5

RETURN RAWTOHEX(DBMS_CRYPTO.HASH(SRC=>to_hash, TYP=>dbms_crypto.HASH_MD5)); 

Maintenant, j'ai la chaîne MD5 cryptée comme:

F267E16E70C2528280A487D5D13617A6

est-il un moyen de décrypter ce code pour obtenir la chaîne de démarrage à nouveau?

Répondre

2

MD5 est un algorithme de hachage, pas vraiment destiné au cryptage ou au décryptage. Donc, non, il n'y a aucun moyen d'obtenir à nouveau la chaîne de démarrage. En fait, compte tenu d'un hachage, il pourrait y avoir beaucoup de start-ficelles potentielles.

0

La fonction de hachage n'est pas isomorphic, c'est-à-dire qu'il n'est pas possible dans le cas général d'inverser la fonction et d'obtenir la valeur originale unique. Ceci est quelque chose de très différent d'être "décodé en toute sécurité". S'il existe des connaissances supplémentaires, par ex. À propos de la longueur de la chaîne, il est très facile d'obtenir toutes les chaînes candidates (c'est-à-dire les chaînes qui correspondent à la valeur de hachage cible)

Donc, ce n'est probablement pas la meilleure façon de décoder le mot de passe. .

exemple simple pour les chaînes de longueur trois:..

select (DBMS_CRYPTO.HASH(RAWTOHEX('Scr'), 2 /* dbms_crypto.HASH_MD5*/)) from DUAL; 

93656D76795528C600E7BF7A17B09C8E 


with chr as (
select chr(ascii('A') -1 + rownum) chr from dual connect by level <= 26 
union all 
select chr(ascii('a') -1 + rownum) chr from dual connect by level <= 26 
union all 
select chr(ascii('0') -1 + rownum) chr from dual connect by level <= 10 
), 
chr2 as (
select a.chr||b.chr||c.chr str 
from chr a, chr b, chr c 
) 
select * from chr2 
where DBMS_CRYPTO.HASH(RAWTOHEX(str), 2 /* dbms_crypto.HASH_MD5*/) 
= '93656D76795528C600E7BF7A17B09C8E' 
; 

Scr 
0

algorithmes de hachage sont une des fonctions de façon a ce titre, il n'y a aucun moyen possible d'inverser les calculs impliqués et arriver à la valeur d'entrée d'origine des algorithmes autres de hachage fonctionner sur des chaînes d'entrée de longueur arbitraire, mais ont une sortie de largeur fixe, dans le cas du MD5 Algorithme il génère une valeur de hachage de 16 octets qui pourrait représenter une valeur d'entrée de 16 octets ou 16 000 octets ou plus.

Donc, bien que vous ne puissiez pas inverser l'algorithme pour récupérer l'entrée d'origine, vous pouvez calculer les valeurs de hachage des entrées candidates potentielles pour (espérons-le) en trouver une qui correspond à votre valeur de hachage existante. Une certaine connaissance de la chaîne d'entrée d'origine serait utile pour réduire l'espace de problème de ce type d'attaque par force brute.