PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → [WD17] calculer un HASH MD5
[WD17] calculer un HASH MD5
Iniciado por webmaster, 29,sep. 2012 13:01 - 8 respuestas
Publicado el 29,septiembre 2012 - 13:01
Bonjour

Je dois calculer un HASH MD5

Je n'obtiens pas le même résultat entre votre fonction HashChaîne et le tous les scripts PHP que je trouve sur internet

Exemple :

sHash1 is string = HashChaîne(HA_MD5_128, "TOTO")
Info(sHash1)
SAI_SansNom1=sHash1

Retourne
Á×Í >ô–ò

alors que les SCRIPT PHP retournent sur la chaine TOTO
04c1d7cd203ef496f200ee5a096b5764

Comment obtenir la même chaine SVP
Miembro registrado
962 mensajes
Publicado el 29,septiembre 2012 - 15:14
bonjour,
c'est le même résultat mais en ascii, pour retrouver la même chose il faut convertir les caractères en Hexa :
sHash1 est une chaîne = HashChaîne(HA_MD5_128, "TOTO")
sHexa est une chaîne = ""
i est un entier
POUR i=1 _A_ Taille(sHash1)
sHexa +=NumériqueVersChaîne(Asc(sHash1[[i]]), "02X")
FIN
Info(sHexa)


Ami calmant, J.P ;-)
Publicado el 30,septiembre 2012 - 12:58
Merci, par contre on va me fournir directement le MD5 en hexa et il va donc falloir que je le convertisse pour que la fonction HashVérifieChaîne fonctionne

Hors je n'arrive pas à faire l'opération inverse de
sHexa +=NumériqueVersChaîne(Asc(sHash1[[i]]), "02X")
pour obtenit l'ascii a partir de l'hexa.

Merci
Miembro registrado
962 mensajes
Publicado el 30,septiembre 2012 - 14:19
bonjour,
tu peux essayer ceci :
MonHash est une chaîne
POUR i = 1 _A_ Taille(sHexa) PAS 2
MonHash += Caract(Val(sHexa[[i sur 2]],"x")) // x minuscule, X majuscule
FIN
Info(MonHash)


Ami calmant, J.P ;-)
Publicado el 30,septiembre 2012 - 17:52
Nickel :)

Merci beaucoup
Publicado el 30,septiembre 2012 - 17:52
BufferVersHexa() HexaVersBuffer()
Miembro registrado
4.618 mensajes
Publicado el 28,agosto 2017 - 16:39
Show parabéns!

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Publicado el 27,abril 2018 - 11:33
Hello,

petit raccourci :

SansEspace(NumériqueVersChaîne(BufferVersHexa(HashChaîne(HA_MD5_128 , "TOTO"))), sscTout)

@++
Publicado el 20,septiembre 2019 - 09:57
Attention : problème de page code en version 24 ! (Windev Mobile) : il faut rajouter un "ChaîneVersUTF8()" et passer par un buffer...

sHash1 est une chaîne = HashChaîne(HA_MD5_128, "TOTO")
donne sur mon poste 51 4F 0B 93 C0 D1 06 C0 36 4C 5B 6C 69 2D DD 7A, alors que

sHash1 est un Buffer = HashChaîne(HA_MD5_128, ChaîneVersUTF8("TOTO"))
donne bien 04 C1 D7 CD 20 3E F4 96 F2 00 EE 5A 09 6B 57 64 !

soit :

sHash1 est un Buffer = HashChaîne(HA_MD5_128, ChaîneVersUTF8("TOTO"))
sHexa est une chaîne = ""
i est un entier
POUR i=1 _A_ Taille(sHash1)
sHexa +=NumériqueVersChaîne(Asc(sHash1[[i]]), "02X")
FIN
Info(sHexa)