ich arbeite zur Zeit an einer Methode eine sichere Passwortabfrage zu erstellen.
Ich habe mir dann folgendes überlegt:
Ein Zahlencode ist gespeichert. In das Textfeld gibt man das Passwort ein, z.B. Haus und dann wird jeder Buchstabe verschlüsselt, also a= 1, b=2 usw. nur halt nicht mit 1,2,3 usw. :P
Soweit so gut funktioniert es auch. Ich lade beim Klick auf Login jedes Zeichen in eine Variable und lasse es dann durch eine funktion umformen. Der umgeforme Wert kommt in eine neue Variable. Insgesamt also 20Variablen für die Eingabe und das umgeformte.
Am Ende wird dann alles in einer Variable zusammengetragen, also Variable eingegebenespasswort = umgeformtes zeichen 1, umgeformtes zeichen 2 usw...
Diese Variable, in der alles zusammengetragen ist, wird dann mit der Variable mit dem Code verglichen und dann wird je nach ergebnis eben der login als erfolgreich oder fehlgeschlagen erklärt.
Meine Frage wäre jetzt: Ist das überhaupt sicherer als eine einfache If-Abfrage? Können nich andere einfach die Werte von außen auslesen? Gibt es eine Bessere Methode? Was ist daran schlecht usw..
Mein Problem ist meine feste Zuordnung der Form "Buchstabe x = Zahl y".
Hier mal Codeausschnitte :
Die Deklarierung:
Code:
'originale Zeichen Dim zeichen1 As String Dim zeichen2 As String Dim zeichen3 As String Dim zeichen4 As String Dim zeichen5 As String Dim zeichen6 As String Dim zeichen7 As String Dim zeichen8 As String Dim zeichen9 As String Dim zeichen10 As String 'convertierte Zeichen Dim czeichen1 As String Dim czeichen2 As String Dim czeichen3 As String Dim czeichen4 As String Dim czeichen5 As String Dim czeichen6 As String Dim czeichen7 As String Dim czeichen8 As String Dim czeichen9 As String Dim czeichen10 As String 'Funktion Convertieren Dim variable As String Dim cvariable As String
Code:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load passwort = "123"
Einlesen der Zeichen usw. :
Code:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'Zeichen einlesen Try zeichen1 = TextBox2.Text(0) zeichen2 = TextBox2.Text(1) zeichen3 = TextBox2.Text(2) zeichen4 = TextBox2.Text(3) zeichen5 = TextBox2.Text(4) zeichen6 = TextBox2.Text(5) zeichen7 = TextBox2.Text(6) zeichen8 = TextBox2.Text(7) zeichen9 = TextBox2.Text(8) zeichen10 = TextBox2.Text(9) Catch MsgBox("Fehlerhafter Benutzername oder Passwort", MsgBoxStyle.Critical, "Achtung!") End Try 'Zeichen convertieren czeichen1 = Convertieren(zeichen1) czeichen2 = Convertieren(zeichen2) czeichen3 = Convertieren(zeichen3) czeichen4 = Convertieren(zeichen4) czeichen5 = Convertieren(zeichen5) czeichen6 = Convertieren(zeichen6) czeichen7 = Convertieren(zeichen7) czeichen8 = Convertieren(zeichen8) czeichen9 = Convertieren(zeichen9) czeichen10 = Convertieren(zeichen10) 'Passwort abfragen If czeichen1 + czeichen2 + czeichen3 + czeichen4 + czeichen5 + czeichen6 + czeichen7 + czeichen8 + czeichen9 + czeichen10 = passwort And txtbox_login.Text = login Then Form2.Show() Else : MsgBox("Fehlerhafter Benutzername oder Passwort", MsgBoxStyle.Critical, "Achtung!") schreiben.Close() End If End Sub
Code:
Public Function Convertieren(ByVal zeichen As String) As String Select Case zeichen 'Großbuchstaben Case "A" Return "1" Case "B" Return "2" Case "C" Return "3"
Natürlich habe ich A-Z, a-z und 0-9 auch noch
Würde mich über Antworten freuen.