MD5 avec VB6

Signaler
Messages postés
27
Date d'inscription
lundi 21 juin 2004
Statut
Membre
Dernière intervention
27 septembre 2007
-
Messages postés
27
Date d'inscription
lundi 21 juin 2004
Statut
Membre
Dernière intervention
27 septembre 2007
-
Salut,

je viens de télécharger le zip de l'appli suivante :

http://www.vbfrance.com/code.aspx?ID=24964

En partant de ce projet, j'ai créé une petite interface toute simple avec 2 txtbox pour saisir la chaine à transformer + une chaine 'grain de sel', un bouton pour appeler la fonction de hash et un second txtbox pour afficher la chaine md5 résultante...

Voici le source de mon interface :
-----------------------------------------------------------
Option Explicit




Private Sub cmdCalculCle_Click()


txtTexteInitial.Text = UCase(Trim(txtTexteInitial.Text))
txtGraindeSel.Text = UCase(Trim(txtGraindeSel.Text))




txtCleActivation.Text = CreateHash(txtTexteInitial.Text & txtGraindeSel.Text)




End Sub


Private Sub txtGraindeSel_Change()


txtCleActivation.Text = ""


If Trim(txtGraindeSel.Text) <> "" And Trim(txtTexteInitial) <> "" Then
    cmdCalculCle.Enabled = True
Else
    cmdCalculCle.Enabled = False
End If


End Sub


Private Sub txtTexteInitial_Change()


txtCleActivation.Text = ""
txtGraindeSel.Text = ""


If Trim(txtGraindeSel.Text) <> "" And Trim(txtTexteInitial) <> "" Then
    cmdCalculCle.Enabled = True
Else
    cmdCalculCle.Enabled = False
End If


End Sub


------------------------------------------------------

Je n'ai pas touché à VB depuis 2004 (du VB5) et je ne me souviens pas avoir manipulé les modules de classes...

Lorsque je clique sur mon bouton pour appeler la fonction de hashage, j'ai un beau retour function non définie...

Il me faut certainement initialiser la classe ou déclarer le module mais je ne sais pas comment...

Merci pour votre aide...

[s]ProIsis[s]

3 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
38
Aprs quelques essais, j'en déduis que :

- Déjà par rapport à la source que tu as téléchargé, il fat que tu ajoute le module MD5Helper.bas et le module de classe MD5.cls à ton projet.
- Toujours depuis cette source, il faut que tu récupère le fichier MD5Helper.tlb, que tu le copie dans le répertoire de ton projet.
- Ensuite tu ouvre les références du projet (Menu Projet/Références) et en utilisant le bouton parcourir, tu ajoute la référence MD5Helper.tlb, fichier que tu viens de copier dans le répertoire de ton projet.

- Ensuite dans le code, le mieux est que tu récupère la fonction GETMD5String présente dans le fichier MD5Testsuite de la source téléchargée, et que tu la mette dans un des modules de ton projet. Elle te servira à décoder le résultat du hash pour l'afficher.
- Il te faut déclarer puis instancier une variable du type de ta classe et ensuite l'utilser comme montrer dans le code de la source téléchargé.

Ce qui donnerais pour la fonction cmdCalculCle_Click :

Private Sub cmdCalculCle_Click()

Dim clsMD5 As MD5

Set clsMD5 = New MD5

txtTexteInitial.Text = UCase(Trim(txtTexteInitial.Text))
txtGraindeSel.Text = UCase(Trim(txtGraindeSel.Text))

Dim data() As Byte
Dim result() As Byte

data = StrConv(txtTexteInitial.Text & txtGraindeSel.Text, vbFromUnicode)
result = clsMD5.CreateHash(data)

txtCleActivation.Text = GetMD5String(result)

End Sub , ----
[code.aspx?ID=41455 By Renfield]

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
27
Date d'inscription
lundi 21 juin 2004
Statut
Membre
Dernière intervention
27 septembre 2007

Merci

Je teste cela dans la journée et te donne des news dans la foulée...

[s]ProIsis[s]
Messages postés
27
Date d'inscription
lundi 21 juin 2004
Statut
Membre
Dernière intervention
27 septembre 2007

Bon, je viens de tester et l'appel de la fonction fait carrément planter VB6 ...

Cela pourrait-il venir du fait que j'ai laissé l'option de compilation MD5_PUREVB à 0 ?

Casy, si tu es OK, je t'envoie le zip de mon projet par mail ou MP...
En fait, je suis parti directement du projet téléchargé pour créer mon form...

[s]ProIsis[s]