vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Variablen/Strings   |   VB-Versionen: VB.NET24.08.05
Secure LoginBox

Eine "sichere" Login-Box mittels MD5-Hash

Autor:   JoykiBewertung:     [ Jetzt bewerten ]Views:  16.212 
www.joyki.deSystem:  WinNT, Win2k, Win8, Win10, Win11 Beispielprojekt auf CD 

Für manche Programme nutze ich eine Login-Box um den Zugriff zu schützen.

Leider ist es möglich, mittels HEX-Editoren oder Disassemblern diese Variablen auszulesen. Um das ganze sicherer zu machen habe ich folgende Programme geschreiben (als Anhang verfügbar):

  1. Make MD5 Password
  2. Secure MD5 Login-Box

Hier der Quellcode zu (1):
(die Textfelder & Buttons werden nicht expl. aufgelistet)

ImportS System.Text
ImportS System.Security.Cryptography
 
Private Sub btnCalc_Click(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles btnCalc.Click
 
  ' Berechnung
  Try
    Dim md5Ausgabe As String
    Dim md5Eingabe As String
 
    md5Eingabe = txtEingabe.Text
    md5Ausgabe = GenerateHashDigest(md5Eingabe)
    Me.txtAusgabe.Text = md5Ausgabe
 
    ' Fehlermeldung
  Catch ex As Exception
    MsgBox("Error 0x02   " + ex.Message)
  End Try
End Sub
Function GenerateHashDigest(ByVal strEingabe As String) As String
  Dim hash As Byte()
  Dim uEncode As New UnicodeEncoding
  Dim bytProducts() As Byte = uEncode.GetBytes(strEingabe) ' von String nach Byte
  Dim md5 As New MD5CryptoServiceProvider
 
  hash = md5.ComputeHash(bytProducts) ' MD5-Hash-Bytes erstellen
  Return Convert.ToBase64String(hash) ' von Byte nach ASCII
End Function

Dieses kann genutzt werden um Benutzername oder Passwort in einen MD5-Hash umzuwandeln.

Nachfolgend der Quellcode zu (2):
(die Textfelder & Buttons werden nicht expl. aufgelistet)

Import System.Text
Import System.Security.Cryptography
 
Private Sub btnLogin_Click(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles btnLogin.Click
 
  Dim passHashOriginal As String = "123456789" ' HIER DAS MD5-PASSWORD EINGEBEN !!!'
 
  ' erweiterung (1) Der Username wird verschlüsselt als MD5-Übergeben!
  Dim usrHashOriginal As String = " USERNAME" ' HIER DEN MD5-USER EINGEBEN !!!'
 
  Dim passHashForCompare As String = GenerateHashDigest(txtPass.Text)
  Dim usrHashForCompare As String = GenerateHashDigest(txtUser.Text)
 
  ' Prüfe
  If usrHashOriginal <> usrHashForCompare Then ' User-Name prüfen
    MsgBox("Überprüfung NEGATIV !", MsgBoxStyle.Critical, "WARNUNG !!!")
    Exit Sub
  Else
    If passHashOriginal <> passHashForCompare Then ' Passwort prüfen
      MsgBox("Überprüfung NEGATIV !", MsgBoxStyle.Critical, "WARNUNG !!!")
      Exit Sub
    Else
      MsgBox("Überprüfung POSITIV !", MsgBoxStyle.Information, "Erfolgreich !")
      ' HIER DER NÄCHSTE SCHRITT ZUM ERFOLGREICHEM LOGIN (stare MainIntern o.ä.)
    End If
  End If
End Sub
Function GenerateHashDigest(ByVal strEingabe As String) As String ' Siehe oben!
  Dim hash As Byte()
  Dim uEncode As New UnicodeEncoding
  Dim bytProducts() As Byte = uEncode.GetBytes(strEingabe) ' von String nach Byte
  Dim md5 As New MD5CryptoServiceProvider
 
  hash = md5.ComputeHash(bytProducts) ' MD5-Hash-Bytes erstellen
  Return Convert.ToBase64String(hash) ' von Byte nach ASCII
End Function

FUNKTIONSWEISE:
Das Problem bei Login's war, dass zum größten Teil das gespeicherte Passwort und/oder der Username im Programmcode (HEX-Editor) oder mit Dissassemblern (IDA)auszulesen war. Die (meiner Meinung nach) bessere Möglichkeit besteht darin das von dem Passwort und/oder dem Username ein sog. MD5-Hash erstellt wird. Dieser MD5-Hash kann dann ohne Bedenken in den Code eingebaut werden, da es sehr schwer ist, anhand von dem MD5-Hash auf den Username oder das Passwort zu kommen.
 

Dieser Tipp wurde bereits 16.212 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel