begin process at 2012 02 12 19:02:40
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Sécurité

 > FONCTION POUR HACHER (MD5) UN TEXTE

FONCTION POUR HACHER (MD5) UN TEXTE


 Information sur la source

Note :
7,57 / 10 - par 7 personnes
7,57 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Sécurité Source .NET ( DotNet ) Niveau :Débutant Date de création :28/12/2004 Vu :17 923

Auteur : Senynium X

Ecrire un message privé
Site perso
Commentaire sur cette source (54)
Ajouter un commentaire et/ou une note

 Description

Bon, je crois que c'est dans le titre.
C'est juste une petite fonction qui permet de hacher (crypter) un texte (c'est plus utile pour les mots de passe). Impossible (????) de revenir au texte d'origine, on test donc en hachant de nouveau et en comparant avec une valeur (préalablement hachée) stockée

Source

  • Private Function CrypterEnMD5(ByVal Texte As String) as string
  • Dim md5 As new MD5CryptoServiceProvider
  • Dim TexteEnBit() As Byte
  • Dim TexteHache() As Byte
  • ' Récupération de la valeur en bit du texte à hacher
  • TexteEnBit = System.Text.Encoding.UTF8.GetBytes(Texte)
  • ' Hachage
  • TexteHache = md5.ComputeHash(TexteEnBit)
  • 'Libération des ressources
  • md5.Clear()
  • ' Renvoi
  • CrypterEnMD5 = Convert.ToBase64String(TexteHache)
  • End function
Private Function CrypterEnMD5(ByVal Texte As String) as string

 Dim md5 As new MD5CryptoServiceProvider
 Dim TexteEnBit() As Byte
 Dim TexteHache() As Byte


 ' Récupération de la valeur en bit du texte à hacher
 TexteEnBit = System.Text.Encoding.UTF8.GetBytes(Texte)

 ' Hachage
 TexteHache = md5.ComputeHash(TexteEnBit)

 'Libération des ressources
 md5.Clear()

 ' Renvoi
 CrypterEnMD5 = Convert.ToBase64String(TexteHache)


End function

 Conclusion

Pour que ça fonctionne, il faut mettre en début du fichier de code la directive suivante
" Imports System.Security.Cryptography "

Bien c'est tout , j'espère que ça aidera quelqu'un ...


 Sources du même auteur

Source .NET (Dotnet) EXEMPLE DE SÉRIALISATION D'OBJETS
Source avec Zip Source .NET (Dotnet) CONTROLE HORAIRE
Source .NET (Dotnet) ENVOYER UN MAIL À UN GROUPE D'UTILISATEUR ACTIVE DIRECTORY
Source .NET (Dotnet) ENVOI SIMPLE DE MAIL EN VB.NET

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) CHIFFREMENT XOR PLUS ROBUSTE par dheroux
Source avec Zip CRYPTAGE MARANT par alpha5
Source avec Zip ACCÈS PAR MOT DE PASSE À FEUILLE EXCEL par mimiZanzan
Source avec Zip CRYPTER-DÉCRYPTER UN TEXTE - TEXTE CRYPTÉ UNIQUEMENT EN MAJ... par Saintache
Source avec Zip Source avec une capture FOLDER PROTECTION par hackoo

Commentaires et avis

Commentaire de MadM@tt le 28/12/2004 11:07:18

C'est le crypteur integré à windows c'est ça ?
et pour décrypter on fait comment ?

Commentaire de Senynium X le 28/12/2004 11:18:01

On ne décrypte pas, c'est du MD5 (irreversible).
J'explik pour le cas d'un mot de passe.
A la création du compte, on crypte le mot de passe avec la fonction et on le stocke dans la BDD, ensuite à chaque connexion de l'utilisateur, on crypte encore le mot de passe et on le compare avec la valeur qui est ds la BDD

Commentaire de MadM@tt le 28/12/2004 16:44:11

ah ouais excellent je connaissais pas cette technique

Commentaire de Senynium X le 28/12/2004 17:00:46

Content que ça t'aide

Commentaire de zemetafyzik le 29/12/2004 12:17:12

c'est vraiment irreversible ????
je comprend pas tres bien comme c'est possible.

Commentaire de Inekman le 29/12/2004 16:13:23

c'est pas du cryptage mais du hashage, tu utilise les 2 termes dans ton explication, ce qui créé la confusion...;-)

Commentaire de Senynium X le 30/12/2004 10:29:23

En effet, mes termes prêtent à confusion, il s'agit d'un hachage et non d'un cryptage

Commentaire de fpdesarmes le 28/07/2005 13:03:59

c'est bien , mais s'il te plait essaye de nous donner un code qui permet le décryptage ou plutôt l'effet inverse. Tu me rendrais un grand service.
Merci d'avance.

Commentaire de Inekman le 28/07/2005 15:23:22

Ben cherche pas on peut pas :D

Commentaire de Senynium X le 28/07/2005 16:02:32

C'est juste, impossible d'obtenir l'effet inverse (en théorie, on sait jamais ...)

Commentaire de MadM@tt le 28/07/2005 23:10:00

FPDESARMES >> Et si tu lisais les commentaires précédents ?

Normalement on ne peut pas "décrypter" (ça n'est pas le bon terme mais on se comprend). La seule méthode pour retrouver la chaine initiale serait la méthode de "force brute" qui consiste à essayer tous les mots ou chaine de caractère existant en les hachant et en les comparant au mot haché.
En effet chaque chaine haché est unique (en théorie car il peut se créer des "collisions" : 2 chaines différentes donne la meme chaine hachée mais c'est très rare)
Voilà c'est tout ce que je sais ;-)

Commentaire de fpdesarmes le 29/07/2005 17:41:41

Merci pour vos réponse . Mais s'il te plait MadM@TT propose moi un code qui réponde à mes préoccupation que tu as bien compris.Mais un code se basant sur le cryptage proposé par  Senynium X .
Cdlt.

Commentaire de Inekman le 29/07/2005 18:14:55

Que ça lui plaise ou non, il va avoir du mal :-P

Commentaire de Senynium X le 29/07/2005 18:51:38

Ouais, en effet ...
CE N'EST PAS POSSIBLE D'OBTENIR L'EFFET INVERSE, C'EST DU HACHAGE MD5

Commentaire de MadM@tt le 31/07/2005 13:37:00

hum hum, je crois qu'il y a des petits problèmes de communication...
fpdesarmes >>
1. On ne peut obtenir l'effet inverse
2. Si tu veux retrouver la chaine de départ, il faut proceder ainsi (non ça n'est pas l'effet inverse) :
Hacher en MD5 toutes les chaines qui peuvent exister (exemple :"a", "aaa", "oszhgfzjkgnjn", "oasfhszncvjn ebgfu zerubguhuerhl a'_ju iotuçàé"'u_")
Puis comparer la chaine hachée que tu veux "dé-hacher" à toutes les chaines précédentes que tu a haché...

C'est pas compliqué à coder, c'est juste très très long à executer.

Je sais que sur une méthode de hachage (je ne sais plus si c'était du MD5) des équipes qui bossaient avec des superordinateurs gigantesques en réseau on mis des mois à trouver une collision (2 chaines différentes qui une fois hachées donne la meme chaine hachée) Donc bon courage...

Commentaire de fpdesarmes le 01/08/2005 10:50:55

Ben merci.
J'essayerais de trouver une autre méthode.
Mais je reste à l'écoute pour tout autre éventualité.Mon probléme c'est de pouvoir retrouver une chaine originale aprés hachage et non aprés codage .

Commentaire de MadM@tt le 01/08/2005 21:58:42

Euhhhh......................
quelqu'un a parlé de codage ici ???
C'est une source qui hache une chaine en MD5, c'est tout ! Pas de codage ici, on ne parle que de hachage !
Donc comme on vient de le dire, la particularité du hachage c'est qu'on ne peut PAS faire l'opération inverse et que la seule façon de retrouver la chaine de départ, c'est d'utiliser la méthode "brute" (voir mes posts précédents).

Est ce clair ??

Commentaire de Inekman le 01/08/2005 22:09:12

Je te soutiens de tout coeur MadM@att :-) On y arrivera.

Au passage, FPDESARMES, je viens de hasher un mp3 de 152 minutes (140 Mo), le voilà : 21ab7affd11a3bf2b75b5410145ddd69

T'as 2 ans pour m'envoyer le fichier original ^^ Si tu me dis "impossible", je pense que t'aura fait un grand pas en avant ;-)

Commentaire de MadM@tt le 01/08/2005 22:16:28

mdr...
Ne soyons pas taquin le message est passé je pense ;) lol

Commentaire de fpdesarmes le 02/08/2005 15:08:08

Ok les gars .Merci de votre sympathique humour.
J'ai  vraiment bcp de boulots ,mais à l'occasion je reléverais le défit.
Bye
et Merci pour tout .

Commentaire de Senynium X le 02/08/2005 15:41:22

Enfin, il a compris ... beaucoup de courage, on est tous de la partie

Commentaire de themioux le 20/05/2006 00:01:32

J'ai lu il y a peu qu'une équipe de koréens (il me semble) a réussi à trouver un moyen de retrouver le message original à partir d'un MD5, mais il faut :

- connaitre la taille exacte à l'octet près du fichier
- connaitre une partie du fichier
- Avoir un super calculateur et 6 mois devant soi ^^

Ils en ont conclu que MD5 n'était plus un système "fiable" pour... euh, on va dire protéger les mots de passe (même si ce terme est faux vu que ce n'est qu'une empreinte du mot de passe (voir au dessus ^^))

Bref, tout ca pour dire à ceux qui n'ont pas compris que MD5 c'est "indécryptable" pour le commun des mortels

PS : Oups, je viens juste de me rendre compte que je déterre un topic vieux d'environ 1 an ^^ désolé

Commentaire de poupouille55 le 26/05/2006 16:10:07

salut
je m'étais perdue dans la doc msdn sur le cryptage. ton explication et ton code m'ont bien aidé !
j'y vois plus clair
merci bonne prog !

Commentaire de chavithra le 28/05/2006 11:19:54

lol mais si c'est possible en utilissant une clé de décryptage je connais un gars qui a réussi.
http://fr.wikipedia.org/wiki/MD5

Commentaire de chavithra le 28/05/2006 11:22:42

tenez la preuve http://md5.rednoize.com/

Commentaire de themioux le 28/05/2006 11:57:12

Enfin, preuve...

C'est une  table qui remonte 4 000 000 de données dans une base de données, qui ne doit pas prendre  en compte les collisions... bref, pour remonter un fichier, c'est pas si simple (certes pour un mot de passe c'est largement suffisant :D)

Commentaire de MadM@tt le 28/05/2006 17:23:11

"clé de décryptage" >> tu peux nous expliquer ce que c'est ?
merci

Commentaire de themioux le 28/05/2006 22:22:27

Il n'y a pas de clef de décryptage, vu qu'il n'y a pas de clef de cryptage... C'est une fonction de HASHAGE pas de CRYPTAGE... A partir d'un texte ou d'un fichier on obtient une empreinte correspondante au dit fichier ou texte (même si je sais que tu as compris, au vue de tes précédents messages)

Pour obtenir des fichiers avec collision, on étudie la méthode de HASHAGE pour trouver des colisions (au passage, il existe 2 fichiers parfaitement compréhensibles au format post script qui ont des signatures qui font collision mais j'ai plus l'adresse où les trouver)
Comme je l'ai précisé plus haut, il s'agit de 2 fichiers dont on connaissait des carractéristiques (taille, contenu approximatif...) et même comme ca, on ne peut pas être sûr d'obtenir le fichier d'origine

Le CRYPTAGE part d'une chaine donnée pour obtenir une nouvelle chaine. Le cryptage est INJECTIF (pour tout élément dans l'ensemble de départ (un texte, un fichier) il existe une image UNIQUE dans l'ensemble d'arrivée).
L'injection est très importante, parce que si 2 fichiers avaient la même image, comment être sûr du message (ou fichier) que l'on recoit ?
Le hashage N'EST PAS INJECTIF puisqu'il y a des COLLISIONS possibles (comme par exemple les 2 fichiers dont je parlais (tiens j'ai retouvé l'adresse :D http://www.cits.rub.de/MD5Collisions/))

En revanche contrairement à ce que je disais, il faut quelques heures sur un PC standard pour en trouver une (selon cette page) de collision (et c'est donc pour ceci que MD5 n'est plus viable (utilisez SHA (par exemple) à la place si vous avez besoin d'une meilleure sécurité))

PS : Les termes écrits en majuscules ne correspondent pas à des cris comme le veut la nettiquette mais juste un moyen d'écrire en gars les choses importantes

Commentaire de MadM@tt le 28/05/2006 22:36:11

lol oui je posais cette question justement pour lui faire remarquer qu'une clé de décryptage n'existe pas.

Commentaire de poupouille55 le 29/05/2006 10:21:27

bon là faut m'expliquer, pcq justemet sur wikipédia, il dise que le hachage n'a pas de clef, mais que MD5 si. alors j'avais compris que la clef du MD5 était le résultat du hachage.
toujours sur wikipedia, il fournisse la preuve ki au contraire montre que md5 n'est plus fiable. tout d'abord pcq il a été cassé, et que désormais, comme il est beaucoup utilisé, il existe de nombreuses collisions

Commentaire de MadM@tt le 29/05/2006 10:25:45

Ben je n'en sais pas plus que toi mais je dirai que logiquement, on peut pas se servir du résultat du hachage comme clé pour hacher, alors qu'on a pas encore haché lol (tu me suis :S)

Commentaire de themioux le 29/05/2006 12:16:51

En fait, la clef est ke résultat du MD5, contrairement à une clef de cryptage qui intervient avant le résultat

Explication :
Je souhaite crypter la chaine "abc" avec la méthode "jules césar" (c'est à dire, j'utilise un cryptage par décalage avec une valeur de 3 (sachant que 3 est ma clef secrette))
La méthode : Je prends la première lettre du message, "a" dont la valeur est "0" (car on compte modulo 26 (soit de 0 à 25 et dès qu'on dépasse 25, on repart de 0)) et on y ajoute la clef secrette . 0 + 3 = 3
On prends la deuxième lettre du message et on refais pareil... on obtiens : "4" et "5" pour "c"
le résultat est donc "345" qui, retourné sous forme de texte donne "def"

quelqu'un qui n'a pas la clef de décryptage (en l'occurence -3) ne peut pas retrouver le message d'origine. Au passage, le message d'origine fais la même taille que le message d'arrivée (ce qui n'est pas toujours vrai)

Bien sûr il existe des méthodes très simple pour casser un tel cryptage mais je ne présente ici que la méthode

Ce qui est à remarquer, c'est que chaque message a une image unique (il n'exite pas de collisions) et il existe une fonction permettant de faire l'opération inverse

Pour ce qui est de l'opération de hashage, supposons une fonction (bidon) f qui calcule la somme des lettre et renvoie cette somme comme "clé de hashage", ou "valeur de hashage" ou plus simplement "hash"
Une page se sert de cette méthode pour garder les mots de passe dans sa base de données.
Un utilisateur s'inscrit et donne comme mot de passe "abc"
Son hash est de 0 + 1 + 2 = 3 et donc "3" est stocké dans la base de données à la place de "mot de passe"
Les jours passent
Un jour, un pirate tente d'obtenir le mot de passe de l'utilisateur, il regarde ce qui passe dans le réseau et voit (par exemple) un paquet contenant "mot de passe = 3"
S'il est capable de créer un mot de passe dont la signature est 3, il pourra alors rentrer sur le site.
Il cherche et trouve la collision suivante : "d" (ou "cba", ou même "cb")
Il ne connais pas le mot de passe, et pourtant, il est capable d'entrer sur le site, il n'a donc pas pu "décrypter" le message vu que plusieurs messages ont la même signature...

Voilà pour la petite histoire :D

Commentaire de chavithra le 29/05/2006 18:33:38

Dsl si le terme "clé de décryptage" était fausse, me le rappeler qu'une seul fois aurai suffit, et merci à toi THEMIOUS pour le site qui allaire pas trops male même si c'est de l'anglé.Jvais lire ca.

J'ai vu qu'on pouvé voir certains mots de passe enrengistrés sur son ordi, notamment celui stocké par msn, parcequ'ils sont hashé en md5

Alors j'ai demandé à un gars qui avait fait certains programmes dont un qui permettait de voir les mots de passe msn stocké l'ordi et il m'as dis qu'il utilisé une "clé" pour trouver le pass.

Commentaire de chavithra le 29/05/2006 18:35:19

si quelqu'un la veut suffit de demander

Commentaire de themioux le 29/05/2006 18:41:39

C'est pas contre toi, mais je me dit que quelqu'un qui lit ces commentaire pourrait croire des choses fausses, et comme je tombe souvent sur des forums où on demande "comment on décrypte MD5", j'ai fais un gros coup ici pour bien faire comprendre le principe du cryptage et du hashage :D

En espérant que les suivant comprendront sans poser les mêmes questions :D

Commentaire de MadM@tt le 29/05/2006 21:30:53

chavithra >> Rien à voir mais : wikipédia existe en français aussi, c'est une encyclopédie libre, donc n'importe qui peut y ajouter et modifier des articles.
voilà,un excellent site il mérite un peu de pub lol ;)
A+

Commentaire de chavithra le 30/05/2006 19:00:53

lol mdr MadM@tt

Commentaire de gogomanu le 13/06/2006 15:54:41

Merci pour ce source, j'avais un code pour VB6 qui faisait ... quelques centaines de lignes, là c'est une bonne surprise pour mon passage en .NET !

Commentaire de SeeD2018 le 10/11/2006 12:33:52

nikel ce code.
EN GROS UNE FOIS HACHé ,C'EST PAS POSSIBLE DE RETROUVER LA CHAINE DE DéPART (pour le commun des mortels, pour les autres vi c'est possible)
EXEMPLE: le but est de haché un mot de passe, illisible dans une bdd par exemple ou un fichier texte, et de comparé le mot de passe qu'on entre à la main en appliquant la fonction au dessus.
bisoux

Commentaire de Clad49 le 09/01/2007 23:36:51

Salut !

Ton code et bon mais lors de la transformation des bits en string tu a une érreur !

Convert.ToBase64String est faux ! ca ne retourne pas la vraie valeur en md5

ex : je veut coder 'Salut' en MD5
ca doit donner : af4fef1bc0861ca2824db7315f844327
ton code donne : r0/vG8CGHKKCTbcxX4RDJw==

Clad

Commentaire de XelectroX le 08/04/2007 16:18:42

Oui, c'est vrai que ca donne vraiment n'importe quoi !! :S :(

Commentaire de XelectroX le 08/04/2007 16:25:17

Utilise plutot cette fonction :
    Private Function ByteArrayToString(ByVal arrInput() As Byte) As String
        Dim strOutput As New System.Text.StringBuilder(arrInput.Length)
        For i As Integer = 0 To arrInput.Length - 1
            strOutput.Append(arrInput(i).ToString("X2"))
        Next
        Return strOutput.ToString().ToLower
    End Function

http://www.vbfrance.com/recherche.aspx?r=MD5&tr=source ==> Dans le fichier Form1.vb

;)

Commentaire de SeeD2018 le 11/04/2007 16:29:39

merci XelectroX pour la correction, ca va mieux ^^

Commentaire de Children le 23/09/2007 14:59:04 6/10

D'abord bonjours.
ensuite: Voilà, sa peut paraîttre débile, mais j'ai essayé:

TextBox1.Text = TextBox1.Text.Replace(CrypterEnMD5("a"), "a")
        TextBox1.Text = TextBox1.Text.Replace(CrypterEnMD5("b"), "b")
        TextBox1.Text = TextBox1.Text.Replace(CrypterEnMD5("c"), "c")
        TextBox1.Text = TextBox1.Text.Replace(CrypterEnMD5("d"), "d")
        TextBox1.Text = TextBox1.Text.Replace(CrypterEnMD5("e"), "e")
        TextBox1.Text = TextBox1.Text.Replace(CrypterEnMD5("f"), "f")
        TextBox1.Text = TextBox1.Text.Replace(CrypterEnMD5("g"), "g")
        TextBox1.Text = TextBox1.Text.Replace(CrypterEnMD5("h"), "h")
        TextBox1.Text = TextBox1.Text.Replace(CrypterEnMD5("i"), "i")
        TextBox1.Text = TextBox1.Text.Replace(CrypterEnMD5("j"), "j")
        TextBox1.Text = TextBox1.Text.Replace(CrypterEnMD5("k"), "k")
        TextBox1.Text = TextBox1.Text.Replace(CrypterEnMD5("l"), "l")
        TextBox1.Text = TextBox1.Text.Replace(CrypterEnMD5("m"), "m")
        TextBox1.Text = TextBox1.Text.Replace(CrypterEnMD5("n"), "n")
        TextBox1.Text = TextBox1.Text.Replace(CrypterEnMD5("o"), "o")
        TextBox1.Text = TextBox1.Text.Replace(CrypterEnMD5("p"), "p")
        TextBox1.Text = TextBox1.Text.Replace(CrypterEnMD5("q"), "q")
        TextBox1.Text = TextBox1.Text.Replace(CrypterEnMD5("r"), "r")
        TextBox1.Text = TextBox1.Text.Replace(CrypterEnMD5("s"), "s")
        TextBox1.Text = TextBox1.Text.Replace(CrypterEnMD5("t"), "t")
        TextBox1.Text = TextBox1.Text.Replace(CrypterEnMD5("u"), "u")
        TextBox1.Text = TextBox1.Text.Replace(CrypterEnMD5("v"), "v")
        TextBox1.Text = TextBox1.Text.Replace(CrypterEnMD5("w"), "w")
        TextBox1.Text = TextBox1.Text.Replace(CrypterEnMD5("x"), "x")
        TextBox1.Text = TextBox1.Text.Replace(CrypterEnMD5("y"), "y")
        TextBox1.Text = TextBox1.Text.Replace(CrypterEnMD5("z"), "z")

Le code marche pour une lettre, mais pas pour plusieurs. Est-ce dû à l'erreur signalé par Clad49?

Commentaire de Children le 23/09/2007 14:59:59

Ou alors je n'ai peut-être pas compris le fonctionnement de cette source^^

Commentaire de themioux le 23/09/2007 16:12:30

Salut

Alors pour la Xième fois, il est IMPOSSIBLE de revenir en arrière. De plus, un code d'une longueur arbitraire aura pour résultat une chaine de longueur fixe (c'est à dire que un fichier de 1Go aura pour résultat un hashage de la même longueur que une lettre seule.

De plus il est "case sensitive" (a et A n'auront pas le même hashage final) et une petite modification entraine un code de hashage très différent (à savoir "ceci est un test" et "ceci est un Test" (avec un T au lieu du t) auront un hashage très différent)

il est donc normal que ton code ne fonctionne pas, car "ab" ne sera pas hashé en (hash de a)(hash de b) mais en une autre chaine de caractère qui n'a totalement rien à voir avec le hash de a et le hash de b

Commentaire de Children le 24/09/2007 17:56:22

Oui, j'en convient, je venait de comprendre le hachage, merci quand même d'avoir répondut à ce message, tu doit avoir beaucoup de patience (au moins X fois plus que moi^^).
C'est un peut comme racine de a + racine de b n'est pas égal à racine de a+b (exemple bidon sortit de l'un de mes vieux cours de 3iemes). Mais je ne comprend toujours pas à quoi sa sert si c'est irréversible, mais c'est peut être moi, ne cheche pas a m'expliquer, je ne comprendrait pas, j'y arriverait bien tout seul.

Sur ce, bonne programmation.

Commentaire de themioux le 24/09/2007 18:06:26

Ca sert de signature numérique (en particulier) par exemple

Tu joint la signature MD5 de ton fichier, si la personne qui le recoit a un MD5 différent c'est qu'il a été modifié (c'est utilisé entre autres quand tu télécharge une distro linux, tu as le fichier ISO et un fichier MD5 qui correspond au MD5 du fichier ISO)

Et avec le texte, ca sert à "stocker des mots de passe"

Plutot que de mettre le mot de passe en brut (ou avec une fonction de cryptage (qui, elle, est réversible)) dans la base de données, tu met la signature MD5 du mot de passe dans ta base et quand quelqu'un se connecte tu compare la signature du mot de passe qu'il t'a envoyé avec la signature que tu as dans ta base.
Avantage : Si quelqu'un arrive à lire le contenu de ta base de données, alors il n'aura pas les mots de passe et il ne pourra pas les décrypter vu que la fonction MD5 est irréversible
Inconveignant : il peut y avoir des collisions (2 mots de passe avec la même signature) mais elle est de l'order de 1 / 4 000 000 (de mémoire). Le hashage MD5 n'est plus sûr au sens cryptogaraphique du terme (possibilité de générer des colisions facilement, Wikipedia en parles) et il est recommandé d'utiliser d'autres fonctions à la place (genre SHA1)

Commentaire de Redman31100 le 13/08/2008 02:55:05

En fait il y a 2 types d'affiche MD5 En Base64 ou en format texte "X2" mais le format texte X2 je ne sais pas à quoi ca correspond.

Commentaire de gentelmanmd le 02/07/2009 12:27:40

slt les amis.
je suis sur qu'il y a 1 site qui decrypte les chaines MD5.
mais je ne me rappel pas de son nom.
mais ce site decrypte seulement les chaines court et simples.

Commentaire de XelectroX le 02/07/2009 13:04:50

Il en existe plusieurs mais il faut savoir qu'il ne décrypte pas, car c'est indécryptable alors il peut faire un "brute force" si je me souviens bien du nom, qui consiste a tester toute les lettres ou chiffres ou autre caractères 1 par 1 (a, aa, ab, ..., ba, bb, ...) puis le hash pour le comparer à celui qu'on lui envoie ou bien en utilisant un dictionnaire de mot où il connait ou bien recalcule le hash pour faire la comparaison, dictionnaire que l'on peut parfois aider à remplir en envoyant des mots dans leur dico ...
Tout cela pour dire que c'est indécriptable mais qu'il existe des solutions pour trouver ce qui se cachait derrière le hash. C'est pourquoi quand on veut un bon mot de passe sécuriser, il faut une longueure minimale (imagines la durée que prendra le "brute force" avec un mot de passe de plus de 8), des caractères spéciaux (on ne les inclut pas toujours dans le "brute force" car la durée augemente encore) et ne pas utiliser des mots connus donc j'inventes un mot de passe : "45z5f!%hd", envoie le sur ton site ou un autre, il ne trouvera pas tant qu'il n'utilisera pas un "brute force" de très longue durée ...
Voilà, tout ca pour répéter que c'est indécryptable.

Commentaire de mioux le 02/07/2009 16:37:18

La plupart des sites qui "déchiffrent" le MD5 ne trouvent en fait qu'une collision.

Comme expliqué dans le commentaire précédent, ils se basent le plus souvent sur une base de données (un dictionnaire quoi).

De plus, prends un fichier de 1Go constitué uniquement de texte, calcule son MD5 (md5sum fichier sous linux, il faut télécharger des outils pour ca sous Windows (md5sum existe en version windows d'ailleurs)) et demande lui de retrouver le texte contenu dans le fichier.

Soit il le trouve de suite parce qu'il l'a déjà dans son dictionnaire, soit il fait une attaque dessus (Une force brute attack est beaucoup plus longue qu'une birthday attack qui semble avoir été utilisée pour créer des collision sur MD5)

Dans les 2 cas, je ne pense pas qu'il te renvoie le contenu de ton fichier, mais uniquement l'une des colisions probables qui existent (une collision c'est quand 2 fichiers/textes ont le même MD5)

Pour avoir quelque chose de plus sécurisé que le MD5, il vaut mieux utiliser SHA-256 qui semble mieux résister aux attaques pour trouver des collisions.

Commentaire de Frank339 le 04/08/2009 22:40:34

Bjr à tous avant tout...

J'ai testé ta source, elle me parait pas mal, mais malheureusement j'ai un soucis avec :
Private Function CrypterEnMD5(ByVal Texte As String) As String

ca me fait une erreur de :
Statement is not valid in a namespace.

si tu as une idée, je suis preneur

Salutations

Commentaire de Frank339 le 04/08/2009 22:43:28

Merci de ne pas tenir compte de mon dernier message, j'ai fais un peu le boulet de service...

Merci quand meme...

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales