[Solucionado] Obtener código MD5 Checksum de un proceso abierto

Iniciado por Segurida, 8 Mayo 2011, 21:52 PM

0 Miembros y 1 Visitante están viendo este tema.

Segurida

Pues eso, necesito saber el método para obtener el código MD5 Checksum de un proceso abierto, de cualquier proceso, sin necesidad de cerrarlo, aquí dejo el código para los que necesiten obtener el código MD5 Checksum de un archivo:
Código (vbnet) [Seleccionar]

' Para que este código funcione "tal cual está" necesitas:
' Form1 y dentro TextBox1 (multilínea activado)

Imports System.IO
Imports System.Text
Imports System.Security.Cryptography

Public Class Form1
   Protected Function MD5Checksum(ByVal fileName As String) As String
       Dim file As New FileStream(fileName, FileMode.Open)
       Dim md5 As MD5 = New MD5CryptoServiceProvider()
       Dim retVal As Byte() = md5.ComputeHash(file)
       file.Close()

       Dim sb As New StringBuilder()
       For i As Integer = 0 To retVal.Length - 1
           sb.Append(retVal(i).ToString("x2"))
       Next
       Return sb.ToString()
   End Function

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       TextBox1.Text = MD5Checksum("C:\imagen1.jpg").ToString + vbCrLf + MD5Checksum("C:\imagen1 - copia.jpg").ToString
   End Sub
End Class

Este código puede ser muy útil, lo comparto con todo el que lo necesite  ;)
Si alguien sabe hacer lo que pido, por favor que avise, he probado a poner la ruta de un proceso .exe que se esté ejecutando, y da error, si alguien sabe cómo hacerlo sin cerrar dicho proceso, se los agradezco.
saludos.

seba123neo

Hola, proba esto, a mi me funciona bien.

Código (vbnet) [Seleccionar]
Imports System.IO

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        MsgBox(ObtenerHashProceso("C:\Archivos de programa\Mozilla Firefox\firefox.exe", Security.Cryptography.MD5.Create))
    End Sub

    Public Shared Function ObtenerHashProceso(ByVal pPath As String, ByVal pTipoHash As Security.Cryptography.HashAlgorithm) As String
        Dim vHASH As String

        Dim vStream As FileStream = File.OpenRead(pPath)

        Dim vArrHash As Byte() = pTipoHash.ComputeHash(vStream)

        vHASH = BitConverter.ToString(vArrHash).Replace("-", "")

        vStream.Close()

        Return vHASH
    End Function
End Class


saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Segurida

Muchas gracias, funciona perfecto, mil gracias  :)
Tema resuelto.