Visual Basic 2008 Verschlüsselung - Sicherheit?
Guten Tag,
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.
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..
Hier mal Codeausschnitte :
Die Deklarierung:
Die festsetzung des Passworts
Einlesen der Zeichen usw. :
Die Funktion
Natürlich habe ich A-Z, a-z und 0-9 auch noch
Würde mich über Antworten freuen.
Guten Tag,
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.

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..
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
Die festsetzung des Passworts
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
Die Funktion
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.