Visual Basic 2005 :: Obtener el código MD5 de un fichero
Artículo :: Programación :: Visual Basic 2005
Obtener el código MD5 de un fichero
En este pequeño artículo, vamos a hacer una pequeña utilidad o programa, que nos permita obtener el código MD5 de un fichero dado.
El código MD5 nos servirá para generar una firma (como la firma CRC32 por ejemplo) para verificar que un determinado fichero enviado por un emisor, llega correctamente al receptor.
Esto lo lograremos mediante el uso del nombre de espacio System.IO y System.Security.Cryptography.
El código para realizar esta acción, prácticamente no requiere explicación y es el que se indica a continuación:
Imports System.IO Imports System.Security.Cryptography
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load MessageBox.Show(ObtenerMD5("c:\fichero.zip")) End Sub
Private Function ObtenerMD5(ByVal fichero As String) As String Dim cadenaMD5 As String = "" Dim cadenaFichero As FileStream Dim bytesFichero As [Byte]() Dim MD5Crypto As New MD5CryptoServiceProvider cadenaFichero = File.Open(fichero, FileMode.Open, FileAccess.Read) bytesFichero = MD5Crypto.ComputeHash(cadenaFichero) cadenaFichero.Close() For Each datos As Byte In bytesFichero If datos < 16 Then cadenaMD5 &= "0" & datos.ToString("X") Else cadenaMD5 &= datos.ToString("X") End If Next Return cadenaMD5 End Function
End Class
|
Añadido del día 22 de Agosto (otra forma de hacer lo mismo pero más directo):
Imports System.IO Imports System.Security.Cryptography
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load MessageBox.Show(ObtenerMD5("c:\Fichero.zip")) End Sub
Private Function ObtenerMD5(ByVal fichero As String) As String Dim cadenaMD5 As String = "" Dim cadenaFichero As FileStream Dim bytesFichero As [Byte]() Dim MD5Crypto As New MD5CryptoServiceProvider cadenaFichero = File.Open(fichero, FileMode.Open, FileAccess.Read) bytesFichero = MD5Crypto.ComputeHash(cadenaFichero) cadenaFichero.Close() cadenaMD5 = BitConverter.ToString(bytesFichero) cadenaMD5 = cadenaMD5.Replace("-", "") Return cadenaMD5 End Function
End Class
|