MD5 (Message-Digest 5) en Visual Basic .NET

Índice

1) Introducción

MD5 (Acrónimo de Message-Digest 5 / Resumen del Mensaje 5) es un algoritmo de reducción criptográfico de 128 bits, diseñado en 1991 por Ronald Linn Rivest del MIT (Massachusetts Institute of Technology / Instituto Tecnológico de Massachusetts).

MD5 toma como entrada un mensaje de longitud arbitraria y genera como salida 128 bits, que se representa habitualmente como 32 dígitos hexadecimales y recibe nombres como "mensaje resumen" o "huella", que proceden de los términos utilizados originalmente en inglés "message digest " o "fingerprint" respectivamente.

Es utilizado principalmente para comprobar la integridad de un archivo descargado, es decir, para asegurar que dicho archivo no se ha alterado, de manera intencional (Malware / Software malicioso) o por una descarga incompleta o corrupta. Comparando la suma MD5 publicada, con la suma de comprobación del archivo descargado, un usuario puede tener la confianza suficiente de que el archivo descargado es igual que el publicado, siempre y cuando las sumas sean idénticas. Para obtener la suma de comprobación del archivo descargado, se debe utilizar alguna de las herramientas disponibles de forma gratuita en internet.

También se utiliza para guardar las contraseñas de los usuarios de manera encriptada, lo cual, es el objetivo del presente documento. Por ejemplo, en una base de datos se guarda el resultado MD5 de la contraseña que se introduce al dar de alta un usuario, y cuando éste quiere ingresar al software se compara el resultado MD5 de la contraseña ingresada en el formulario de inicio de sesión, con la guardada en la base de datos, si coinciden, es la misma clave y el usuario será autenticado.

2) Ejemplos

        MD5("¡Hola mundo en MD5!") = 7de69b5a0cea92a4aeca5da0527cec4c        
        MD5("") = d41d8cd98f00b204e9800998ecf8427e
        MD5("Esto sí es una prueba de MD5") = 02306f485f385f6ed9ab6626052a633d
        MD5("Esto no es una prueba de MD5") = dd21d99a468f3bb52a136ef5beef5034
        MD5("Un ejemplo no es otra manera de enseñar, es la única manera de enseñar.") = ff568b83d26ef690236932d65a76226d
        MD5("abcdef012345") = 03e9b7b472e0ed41225aebdad3baabde
    

3) Clase MD5 en Visual Basic .NET

        Imports System.Security.Cryptography

        ''' 
        ''' Clase MD5 (Acrónimo de Message-Digest 5 / Resumen del Mensaje 5).
        ''' 
        ''' Marcelo Woloszyn - 01/03/2007
        Public Class cls_MD5

            ''' 
            ''' Función que realiza encriptación utilizando MD5.
            ''' 
            ''' Texto a encriptar</param>
            ''' Texto encriptado
            ''' Marcelo Woloszyn - 01/03/2007
            Public Function fgs_Encripta(ByVal pvs_TextoAEncriptar As String) As String
                Dim vlo_MD5 As New MD5CryptoServiceProvider
                Dim vlby_Byte(), vlby_Hash() As Byte
                Dim vls_TextoEncriptado As String = ""

                'Convierte texto a encriptar a Bytes
                vlby_Byte = System.Text.Encoding.UTF8.GetBytes(pvs_TextoAEncriptar)

                'Aplicación del algoritmo hash
                vlby_Hash = vlo_MD5.ComputeHash(vlby_Byte)

                'Convierte la matriz de byte en una cadena
                For Each vlby_Aux As Byte In vlby_Hash
                    vls_TextoEncriptado += vlby_Aux.ToString("x2")
                Next

                'Retorno de función
                Return vls_TextoEncriptado
            End Function

        End Class
    

4) Referencias

XHTML 1.0 | CSS 2.1 | WAI-A
© 2006 - 2011 por Marcelo E. Woloszyn D.