Algoritmia - URGE Hash Md5

 
Vista:

URGE Hash Md5

Publicado por Anubis (1 intervención) el 18/07/2003 14:28:35
Tengo una clase en VB6 que calcula la firma digital segun el algoritmo md5 pero el resultado obtenido no es el correcto. He buscado diferentes algoritmos y los que he encontrado en VB son una copia o replica del mismo. ¿Me podeis ayudar a obtener uno que de el resultado correcto? ¿Que pasa con el que ya tengo, tiene un bug detectado por alguien? Grácias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Implementación de MD5 en VB6 con resultados correctos

Publicado por Alejandro (307 intervenciones) el 28/02/2024 20:42:12
Anubis, el algoritmo MD5 es un algoritmo de hash criptográfico ampliamente utilizado, pero su uso ha disminuido en favor de algoritmos más seguros como SHA-256 o SHA-3. Sin embargo, para tu situación específica en VB6, veamos un ejemplo básico de cómo podrías implementar MD5:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Option Explicit
 
Private Function MD5(text As String) As String
    Dim MD5Obj As Object
    Set MD5Obj = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider")
 
    Dim data() As Byte
    data = StrConv(text, vbFromUnicode)
 
    Dim result() As Byte
    result = MD5Obj.ComputeHash_2((data))
 
    MD5 = ByteArrayToHexString(result)
End Function
 
Private Function ByteArrayToHexString(arrBytes() As Byte) As String
    Dim hexValue As String
    Dim i As Integer
 
    For i = LBound(arrBytes) To UBound(arrBytes)
        hexValue = hexValue & Right("0" & Hex(arrBytes(i)), 2)
    Next i
 
    ByteArrayToHexString = hexValue
End Function
 
Private Sub Command1_Click()
    Dim inputText As String
    inputText = "Hola, mundo!"
 
    Dim hashResult As String
    hashResult = MD5(inputText)
 
    MsgBox "MD5 Hash: " & hashResult
End Sub

Este ejemplo utiliza la clase `MD5CryptoServiceProvider` del espacio de nombres `System.Security.Cryptography` en .NET, la cual es accesible desde VB6 a través de `CreateObject`. La función `MD5` toma una cadena como entrada y devuelve su hash MD5 como una cadena hexadecimal.

Si estás obteniendo resultados incorrectos, podría haber varias razones, como problemas en la implementación o malentendidos en la forma en que se utiliza la función. También asegúrate de que la cadena que estás proporcionando a la función sea la correcta.

Ten en cuenta que VB6 es un entorno obsoleto y no se recomienda para nuevos desarrollos. Si es posible, considera migrar a una plataforma más moderna. Además, si la seguridad es una preocupación, es recomendable utilizar algoritmos de hash más seguros como SHA-256.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar