Rubrik: Entwicklungsumgebung · VB-IDE allgemein | VB-Versionen: VB4, VB5, VB6 | 23.07.03 |
Passwort im Quellcode verschlüsseln Dieser Tipp stellt eine Funktion vor, mit der sich ein VB-String verschlüsselt im Quellcode speichern lässt. | ||
Autor: Dieter Otter | Bewertung: | Views: 28.364 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Eine altbekannte Weisheit sagt: Verwende niemals Passwörter im Klartext. Und dann schon garnicht, wenn diese einem String oder einer Funktion direkt im Quellcode - und zwar im Klartext - zugewiesen werden:
' FALSCH! Dim sPwd As String sPwd = "geheim"
Warum das nicht gut ist?
Na dann schauen Sie sich einmal die kompilierte EXE in einem Text-Editor an. Sie werden schnell feststellen, dass hier das angebliche Passwort im Klartext zu finden ist!
Aus diesem Grund möchten wir Ihnen heute eine kleine aber feine Funktion vorstellen, die aus einem Byte-Array mit einzelnen Ascii-Zeichen den entsprechenden String zusammensetzt und diesen dann als Rückgabewert an die aufrufende Prozedur zurückgibt.
Public Function AscToString( _ ParamArray nAsc() As Variant) As String Dim i As Integer Dim sString As String For i = 0 To UBound(nAsc) sString = sString & Chr$(nAsc(i)) Next i AscToString = sString End Function
Die Funktion erwartet den String zerlegt in seine einzelnen Ascii-Werte.
Beispiel:
Dim sPwd As String sPwd = AscToString(103, 101, 104, 101, 105, 109)
So: Und damit Sie jetzt nicht jeden String mühselig in seine Ascii-Werte zerlegen müssen, erstellen Sie sich ein eigenes kleines Hilfsprogramm, das genau diese Arbeit für Sie erledigt:
Das Programm besteht aus einer Form, zwei TextBoxen und einem CommandButton:
Private Sub Command1_Click() Dim i As Integer With Text2 .Text = "" For i = 1 To Len(Text1.Text) .Text = .Text & CStr(Asc(Mid$(Text1.Text, i, 1))) If i < Len(Text1.Text) Then .Text = .Text & ", " Next i End With End Sub
Beim Klick auf den CommandButton wird der Text aus "Text1" in seine Ascii-Zeichenwerte zerlegt und in "Text2" ausgegeben. Diese "Wertekette" können Sie jetzt als Parameter für die oben genannte "AscToString"-Funktion verwenden (am besten per Copy & Paste einfügen).