vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 
zurück
Rubrik: Variablen/Strings · Algorithmen/Mathematik   |   VB-Versionen: VB4, VB5, VB623.01.02
String mit Passwort verschlüsseln II

Zwei nützliche Funktionen, um einen String in Verbindung mit einem Passwort zu ver- und wieder entschlüsseln.

Autor:   Thomas HoffmannBewertung:     [ Jetzt bewerten ]Views:  47.229 
www.maccoffice.deSystem:  Win9x, WinNT, Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Mit diesem Code kann man einen String mit Hilfe eines Schlüssels (Passwort) ver- bzw. entschlüsseln. Die Funktionen eignen sich z.B. zum verschlüsselten Speichern von Passwörtern innerhalb Dateien oder der Windows-Registry.

Die hier vorgestellte Verschlüsselungs-Routine arbeitet zwar etwas langsamer als über eine XOR-Verschlüsselung, jedoch sind dafür alle ASCII-Zeichen zulässig.

Um die Ver- und Entschlüsselungsfunktion im gesamten Projekt verwenden zu können, empfiehlt es sich die nachfolgenden Funktionen in ein Modul auszulagern.

' Text in Verbindung mit einem Passwort verschlüsseln
Public Function EncodeString(ByVal strToEncode As String, _
  ByVal strPassword As String) As String
 
  Dim strResult As String
  Dim i As Long
  Dim cfc() As Integer
 
  ReDim cfc(1 To Len(strPassword))
 
  For i = 1 To UBound(cfc)
    cfc(i) = Asc(Right(strPassword, _
      Len(strPassword) - i + 1))
  Next i
 
  For i = 1 To Len(strToEncode)
    strResult = strResult & _
      Chr(addToIndex(Asc(Right(strToEncode, _
      Len(strToEncode) - i + 1)), VirtPos(i, cfc)))
  Next i
 
  EncodeString = strResult
End Function
' Text in Verbindung mit einem Passwort entschlüsseln
Public Function DecodeString(ByVal strToDecode As String, _
  ByVal strPassword As String) As String
 
  Dim strResult As String
  Dim i As Long
  Dim cfc() As Integer
 
  ReDim cfc(1 To Len(strPassword))
  ReDim ttc(1 To Len(strToDecode))
 
  For i = 1 To UBound(cfc)
    cfc(i) = Asc(Right(strPassword, _
      Len(strPassword) - i + 1))
  Next i
 
  For i = 1 To Len(strToDecode)
    strResult = strResult & _
      Chr(GetOfIndex(Asc(Right(strToDecode, _
      Len(strToDecode) - i + 1)), VirtPos(i, cfc)))
  Next i
 
  DecodeString = strResult
End Function
' Hilfsfunktionen
Private Function VirtPos(i As Long, _
  a() As Integer) As Integer
 
  If i > UBound(a) Then
    VirtPos = VirtPos(i - UBound(a), a)
  Else
    VirtPos = a(i)
  End If
End Function
 
Private Function addToIndex(i As Integer, _
  j As Integer) As Integer
 
  If i + j > 255 Then
    addToIndex = i + j - 255
  Else
    addToIndex = i + j
  End If
End Function
 
Private Function GetOfIndex(i As Integer, _
  j As Integer) As Integer
 
  If i - j < 0 Then
    GetOfIndex = i - j + 255
  Else
    GetOfIndex = i - j
  End If
End Function

Beispiel
Plazieren Sie auf die Form drei Textboxen (txtToEncode, txtPassword und txtResult), sowie zwei Command-Buttons (cmdEncode und cmdDecode). Beim Klicken auf den ersten CommandButton wird der Text in txtToEncode in Verbindung mit dem in txtPassword eingetragenen Passwort verschlüsselt und in der TextBox txtResult angezeigt. Beim Klicken auf den zweiten CommandButton wird der Ergebnis-Text wieder entschlüsselt und ebenfalls in txtResult angezeigt.

Private Sub cmdEncode_Click()
  ' Verschlüsseln
  txtResult.Text = EncodeString(txtToEncode.Text, _
    txtPassword.Text)
End Sub
 
Private Sub cmdDecode_Click()
  ' Entschlüsseln
  txtResult.Text = DecodeString(txtResult.Text, _
    txtPassword.Text)
End Sub

Dieser Tipp wurde bereits 47.229 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.

Aktuelle Diskussion anzeigen (2 Beiträge)

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen [email protected]  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren [email protected]!
- 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-2023 [email protected] 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