GNT sans publicité, site mobile, fonctionnalitées exclusives...

Base 64 et MD5

Le
jean saint jalmes
Bonjour,

Je dois utiliser l'algorithme MD5 et l'encodage "base 64" dans un échange
http avec un serveur distant sous VB6.0

Connaissez-vous une API ou un contrôle qui peremette cela ?

Merci pour votre aide

Jean
Lire les 3 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
jean-marc
Le #15494711
"jean saint jalmes" message news:
Bonjour,

Je dois utiliser l'algorithme MD5 et l'encodage "base 64" dans un échange
http avec un serveur distant sous VB6.0

Connaissez-vous une API ou un contrôle qui peremette cela ?



Hello,

pour Base64, c'est facile. Voici 2 fonctions qui codent et décodent.
Ces fonctions ont été écrites par NG, qui les avait posté ici même,
dans le post:
http://groups.google.be/group/micro.../thread/1c
20a2e2c9404101/5ee852a49d2c472b?qºse+64&rnum=4#5ee852a49d2c472b

je les reproduit ici in extenso:
Public Function Base64Encode$(S$)
Dim b() As Byte, Out() As Byte, i&, j&, L&, Enc() As Byte
If Len(S) = 0 Then Exit Function
Enc StrConv("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
vbFromUnicode)
L = Len(S): b = StrConv(S, vbFromUnicode)
ReDim Preserve b(0 To (UBound(b) 3) * 3 + 2)
ReDim Preserve Out(0 To (UBound(b) 3) * 4 + 3)
For i = 0 To UBound(b) - 1 Step 3
Out(j) = Enc(b(i) 4): j = j + 1
Out(j) = Enc((b(i + 1) 16) Or (b(i) And 3) * 16): j = j + 1
Out(j) = Enc((b(i + 2) 64) Or (b(i + 1) And 15) * 4): j = j + 1
Out(j) = Enc(b(i + 2) And 63): j = j + 1
Next i
For i = 1 To i - L: Out(UBound(Out) - i + 1) = 61: Next i
Base64Encode = StrConv(Out, vbUnicode)
End Function


Public Function Base64Decode$(S$)
Dim b() As Byte, Out() As Byte, i&, j&, L&, Enc() As Byte, Dec(0 To 255)
As Byte
If Len(S) = 0 Then Exit Function
Enc StrConv("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
vbFromUnicode)
For i = 0 To 255: Dec(i) = 64: Next
For i = 0 To 63: Dec(Enc(i)) = i: Next
L = Len(S): b = StrConv(S, vbFromUnicode)
ReDim Preserve Out(0 To (L 4) * 3 - 1)
For i = 0 To UBound(b) Step 4
Out(j) = (Dec(b(i)) * 4) Or (Dec(b(i + 1)) 16): j = j + 1
Out(j) = (Dec(b(i + 1)) And 15) * 16 Or (Dec(b(i + 2)) 4): j = j + 1
Out(j) = (Dec(b(i + 2)) And 3) * 64 Or Dec(b(i + 3)): j = j + 1
Next i
If b(L - 2) = 61 Then j = 2 Else If b(L - 1) = 61 Then j = 1 Else j = 0
ReDim Preserve Out(0 To UBound(Out) - j)
Base64Decode = StrConv(Out, vbUnicode)
End Function




Pour MD5, il doit suffire de 5 minutes de Googlage pour trouver

une implémentation correcte en VB.



--

Jean-marc
jean saint jalmes
Le #15494681
Merci mille fois Jean Marc pour cette information.

Le codage et le decodage Base64 fonctionne bien.

Il me reste à trouver l'info pour MD5. J'ai cherché sur google mais je n'ai
encore rien trouvé de très précis

Encore merci, Jean

"jean saint jalmes" a écrit :

Bonjour,

Je dois utiliser l'algorithme MD5 et l'encodage "base 64" dans un échange
http avec un serveur distant sous VB6.0

Connaissez-vous une API ou un contrôle qui peremette cela ?

Merci pour votre aide

Jean


jean saint jalmes
Le #15494661
Jean Marc,

Pour info, je viens de trouver une info sur l'API "CrytoAPI" qui prend en
charge le Hash MD5.

A+, Jean

"jean-marc" a écrit :

"jean saint jalmes" message news:
> Bonjour,
>
> Je dois utiliser l'algorithme MD5 et l'encodage "base 64" dans un échange
> http avec un serveur distant sous VB6.0
>
> Connaissez-vous une API ou un contrôle qui peremette cela ?

Hello,

pour Base64, c'est facile. Voici 2 fonctions qui codent et décodent.
Ces fonctions ont été écrites par NG, qui les avait posté ici même,
dans le post:
http://groups.google.be/group/micro.../thread/1c
20a2e2c9404101/5ee852a49d2c472b?qºse+64&rnum=4#5ee852a49d2c472b

je les reproduit ici in extenso:
Public Function Base64Encode$(S$)
Dim b() As Byte, Out() As Byte, i&, j&, L&, Enc() As Byte
If Len(S) = 0 Then Exit Function
Enc > StrConv("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
vbFromUnicode)
L = Len(S): b = StrConv(S, vbFromUnicode)
ReDim Preserve b(0 To (UBound(b) 3) * 3 + 2)
ReDim Preserve Out(0 To (UBound(b) 3) * 4 + 3)
For i = 0 To UBound(b) - 1 Step 3
Out(j) = Enc(b(i) 4): j = j + 1
Out(j) = Enc((b(i + 1) 16) Or (b(i) And 3) * 16): j = j + 1
Out(j) = Enc((b(i + 2) 64) Or (b(i + 1) And 15) * 4): j = j + 1
Out(j) = Enc(b(i + 2) And 63): j = j + 1
Next i
For i = 1 To i - L: Out(UBound(Out) - i + 1) = 61: Next i
Base64Encode = StrConv(Out, vbUnicode)
End Function


Public Function Base64Decode$(S$)
Dim b() As Byte, Out() As Byte, i&, j&, L&, Enc() As Byte, Dec(0 To 255)
As Byte
If Len(S) = 0 Then Exit Function
Enc > StrConv("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
vbFromUnicode)
For i = 0 To 255: Dec(i) = 64: Next
For i = 0 To 63: Dec(Enc(i)) = i: Next
L = Len(S): b = StrConv(S, vbFromUnicode)
ReDim Preserve Out(0 To (L 4) * 3 - 1)
For i = 0 To UBound(b) Step 4
Out(j) = (Dec(b(i)) * 4) Or (Dec(b(i + 1)) 16): j = j + 1
Out(j) = (Dec(b(i + 1)) And 15) * 16 Or (Dec(b(i + 2)) 4): j = j + 1
Out(j) = (Dec(b(i + 2)) And 3) * 64 Or Dec(b(i + 3)): j = j + 1
Next i
If b(L - 2) = 61 Then j = 2 Else If b(L - 1) = 61 Then j = 1 Else j = 0
ReDim Preserve Out(0 To UBound(Out) - j)
Base64Decode = StrConv(Out, vbUnicode)
End Function




Pour MD5, il doit suffire de 5 minutes de Googlage pour trouver

une implémentation correcte en VB.



--

Jean-marc








Publicité
Suivre les réponses
Poster une réponse
Anonyme