[Idee] Visual Basic Md5 Check für ServerSided und ClientSided

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [Idee] Visual Basic Md5 Check für ServerSided und ClientSided

      Also wäre es möglich, mit VB.net einen MD5 Checker umzusetzen wie das Flyff.a und .b System das würde nämlich nice sein für die es nicht funktioniert.

      Müsste aufjedenfall ein Programm sein , dass 2 Dateien mit einem Hash erstellt und das gleichzeitig Serversided im Client checked ob da der gleiche MD5 Hash ist.

      Ich würde eure Hilfe begrüßen.
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • ja es wäre möglich
      1. hash von der datei erstellen

      Quellcode

      1. [COLOR=darkblue]Imports[/COLOR] System.Security.Cryptography
      2. [COLOR=darkblue]Imports[/COLOR] System.IO
      3. [COLOR=darkblue]Imports[/COLOR] System.Net
      4. [COLOR=darkblue]Public[/COLOR] [COLOR=darkblue]Class[/COLOR] Form1
      5. [COLOR=darkblue]Private[/COLOR] [COLOR=darkblue]Function[/COLOR] GetMD5Hash([COLOR=darkblue]ByVal[/COLOR] SourceFile [COLOR=darkblue]As[/COLOR] [COLOR=darkblue]String[/COLOR]) [COLOR=darkblue]As[/COLOR] [COLOR=darkblue]String[/COLOR]
      6. [COLOR=darkblue]Dim[/COLOR] ByteSourc() [COLOR=darkblue]As[/COLOR] [COLOR=darkblue]Byte[/COLOR] File.ReadAllBytes(SourceFile)
      7. [COLOR=darkblue]Dim[/COLOR] Md5 [COLOR=darkblue]As[/COLOR] [COLOR=darkblue]New[/COLOR] MD5CryptoServiceProvider()
      8. [COLOR=darkblue]Dim[/COLOR] ByteHash() [COLOR=darkblue]As[/COLOR] [COLOR=darkblue]Byte[/COLOR] [COLOR=black]=[/COLOR] Md5.ComputeHash(ByteSource)
      9. [COLOR=darkblue]Return[/COLOR] Convert.ToBase64String(ByteHash)
      10. [COLOR=darkblue]End[/COLOR] [COLOR=darkblue]Function
      11. [/COLOR]
      Alles anzeigen

      2. Hash senden (z.b. über nen streamwriter)
      der folgende code wird dank einem bug in der forensoftware (Vbulletin3.8.5) in 2 codeabschnitte unterteilt nicht wundern

      Quellcode

      1. Dim Writer As New IO.StreamWriter(Client.GetStream)
      2. Writer.WriteLine(

      Quellcode

      1. GetM5Hash("Pfad\Datei.b"))
      2. Writer.Flush()
      3. Writer.Close()
      3. Abrufe (Streamreader) und abgleichen und wenn falsch Verbindung Schliessen

      Quellcode

      1. Dim Reader As New StreamReader(Client.GetStream)
      2. If Not (Reader.ReadLine = GetMD5Hash("Pfad\Datei.b")) Then Client.Close
      so sollte es theoretisch gehen

      edit Warum über ReadAllText? jede verschlüsselung wird nicht über text sondern über bytes gemacht bzw der text wird zu byte convertirt
    • das würde so gehen

      Quellcode

      1. If New IO.FileInfo(Application.ExecutablePath).LastWriteTime <> New IO.FileInfo(My.Application.Info.DirectoryPath + "\Datei.a").LastWriteTime Then
      2. MsgBox("Datei.a ist fehlerhaft")
      3. End
      4. End If

      oder wenn man wirklich sicher gehen will kann mans mit jeder datei abprüfen vorrausgesetzt das topdirectory wird immer gleichzeitig mit der .a datei gepatcht

      Quellcode

      1. For Each f As String In My.Computer.FileSystem.GetFiles(My.Application.Info.DirectoryPath, FileIO.SearchOption.SearchTopLevelOnly)
      2. If New IO.FileInfo(f).LastWriteTime <> New IO.FileInfo(My.Application.Info.DirectoryPath + "\Datei.a").LastWriteTime Then
      3. MsgBox("Datei.a ist fehlerhaft")
      4. End
      5. End If
      6. Next