[DotNet] - MD4 Hashing

Status
Niet open voor verdere reacties.

geenID

Gebruiker
Lid geworden
1 jul 2009
Berichten
312
Hallo, ik heb een klein vraagje; Waarom werkt mijn functie niet om een MD4 hash uittevoeren van een bestand
 
Laatst bewerkt:
Als ik een bestand open, dan krijg ik error bij de volgende lijn: GetHash.Text = FileHash.ToString.ToUpper, waardoor het dus niet mogelijk is om een md4 hash van het bestand te krijgen
 
Laatst bewerkt:
Error = NullreferenceExeption was unhandled - Object reference not set to an instance of an object.
 
OK, kun je de waarde van FileHash even controleren?
 
Als dit is wat je bedoelt: de waarde van FileHash is het bestand dat wordt geopend via OpenDialog1.
"Dim FileHash As String = FiletoMD4(OpenFileDialog1.FileName)"
 
Geen idee hoe zo'n debugger werkt :p, maar ik heb wat info gevonden:

Returnparameter = {Void }
Returntype = {Name = "Void" FullName = "System.Void"}
ReturnTypeCostumAttributes = {Void }
 
Probeer dit eens :)
Code:
#Region "FiletoMD4"
    Function FiletoMD4(ByVal fileloc As String) As String
        Dim crypt As New ChilkatCrypt2
        Dim succes As Long = crypt.UnlockComponent("30-day trial")
        Dim returnstr As String
        If succes <> 1 Then
            MsgBox(crypt.LastErrorText)
            returnstr = crypt.LastErrorText
            Return returnstr
        End If
        crypt.HashAlgorithm = "md4"
        crypt.EncodingMode = "hex"
        returnstr = crypt.HashFileENC(fileloc)
        Return returnstr
    End Function
#End Region
 
Opzich werkt die code wel, maar ik krijg de log/de messagebox inplaats van de md4 hash.
 
Wat komt eruit als je deze code i.c.m. met die van Matthi gebruikt:

[CPP]MsgBox(FiletoMD4("C:\Test\Test.txt"))[/CPP]
 
Welke error? Bij mij geeft die geen error. Het is namelijk wel zo dat ik de trial versie gebruikte waardoor ik hem moet activeren. Misschien heb jij ook de 30 dagen trial en is dia al verlopen
 
zelfde error = Object reference not set to an instance of an object

Voert ie bij jou dan wel een md4-hash uit wanneer je een bestand kiest?

ps; Kan je jouw gehele code even laten zien, misschien heb ik iets fouts gedaan...
 
Okee,

Dit is de code:
Code:
Imports CHILKATCRYPT2Lib

Public Class Form1

#Region "FiletoMD4"
    Function FiletoMD4(ByVal fileloc As String) As String
        Dim crypt As New ChilkatCrypt2
        Dim succes As Long = crypt.UnlockComponent("30-day trial")
        Dim returnstr As String
        If succes <> 1 Then
            MsgBox(crypt.LastErrorText)
            returnstr = crypt.LastErrorText
            Return returnstr
        End If
        crypt.HashAlgorithm = "md4"
        crypt.EncodingMode = "hex"
        returnstr = crypt.HashFileENC(fileloc)
        Return returnstr
    End Function
#End Region

    Private Sub OpenFile1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpenFile1.Click

        Dim strm As System.IO.Stream = Nothing 'Set stream
        OpenFileDialog1.Title = "Select a File"
        OpenFileDialog1.InitialDirectory = "C:" 'Start in this directory
        OpenFileDialog1.ShowDialog()
        Try
            strm = OpenFileDialog1.OpenFile() 'Get the filename
        Catch 'If file couldn't be openend show messagebox
            MsgBox("Couldn't open file!", MsgBoxStyle.Critical)
        End Try


        If Not (strm Is Nothing) Then
            Dim FileHash As String = FiletoMD4(OpenFileDialog1.FileName)
            GetPathFile.Text = OpenFileDialog1.FileName.ToString() 'Get path of the file
            GetHash.Text = FileHash.ToString.ToUpper 'Get MD4 hash of the file in uppercase
            strm.Close()
        End If
    End Sub

End Class
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan