vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Variablen/Strings · String-Operationen   |   VB-Versionen: VB4, VB5, VB627.02.01
Strings in Verb. mit einem Passwort verschlüsseln

Dieser Tipp zeigt, wie man einen String in Verbindung mit einem bestimmten Passwort verschlüsseln und wieder entschlüssel kann.

Autor:   LonelySuicide666Bewertung:     [ Jetzt bewerten ]Views:  24.376 
www.vbapihelpline.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Unser heutiger Tipp zeigt, wie man einen String in Verbindung mit einem bestimmten Passwort verschlüsseln und wieder entschlüssel kann.

' String verschlüsseln
Public Function VerEntschlüsseln(ByVal SrcString As String, _
  ByVal Pass As String) As String
 
  On Error Resume Next
  Dim TmpInt As Integer, I, J
  Dim TmpArray() As Integer
  ReDim TmpArray(1 To Len(Pass))
 
  ' Ascii Codes des Passwortes in ein Array Speichern
  For I = 1 To Len(Pass)
    TmpArray(I) = Asc(Mid$(Pass, I, 1))
  Next I
 
  ' Verschlüsselungs-Prozedur
 
  ' Jeden Buchstaben einzeln verschlüsseln
  For I = 1 To Len(SrcString)
    ' Für jeden Passwortbuchstaben einmal verschlüsseln
    ' Buchstaben in Ascii-Wert umwandeln
    TmpInt = Asc(Mid$(SrcString, I, 1)) 
    For J = 1 To Len(Pass)
      ' und mit Xor binär umwandeln
      TmpInt = TmpInt Xor TmpArray(J)
      ' zur Sicherheit nocheimal binär umwandeln (Xor)
      TmpInt = TmpInt Xor J
    Next J
 
    ' Das Null-Zeichen kann in einer TextBox
    ' nicht angezeigt werden
    If TmpInt > 0 Then
      ' Binär-Wert wieder in Ascii-Zeichen umwandeln
      VerEntschlüsseln = VerEntschlüsseln & Chr$(TmpInt)
    Else
      ' sonst Null-Zeichen-Konstante einfügen
      VerEntschlüsseln = VerEntschlüsseln & "%$0$%"
    End If
  Next I
End Function

Wie funktioniert das jetzt?
Ascii-Zeichen werden intern als Zahlen angegeben (0-255) und Zahlen werden intern als Bits angegeben (z.B. 100 = 00000100). Zunächst wird das Ascii-Zeichen in einen String umgewandelt. Man erhält dann eine Zahl (z.B. Buchstabe a = 97). Als nächstes wird die Xor-Funktion verwendet. Die Xor-Funktion vergleicht ein oder mehrere Bits miteinander und gibt für jedes gleiche Bit eine 1 zurück, bzw. für jedes ungleiche Bit eine 0. So ergibt z.B. die Anweisung 00000100 Xor 00000011 das Ergebnis 11111000 (nur die ersten 5 Bits sind gleich (alles Nullen)). Das ganze erfolgt durch den Aufruf Xor automatisch. Man übergibt einfach 2 Zahlen, z.B. 1 Xor 2 und erhält als Ergebnis 3. Ruft man dann 1 Xor 3 auf, so erhält man als Ergebnis 2, bzw. bei 2 Xor 3 das Ergebnis 1. Dieser Vorgang wird in der Funktion zweimal angewandt (doppelte Verschlüsselung). Jedes einzelne Zeichen des Quellstrings wird 2-mal mit jedem Zeichen des Passwort verschlüsselt. Ist also das Passwort 10 Zeichen lang, wird jeder Buchstabe des Quellstrings 20 mal verschlüsselt, was u.U. aber auch sehr viel Zeit kosten kann.

Beispiel:

' String verschlüsseln
Dim source As String
Dim password As String
Dim code As String
 
source = "www.vbarchiv.de"
password = "vbArchiv"
 
code = VerEntschlüsseln(source, password)

Die Variable Code enthält nun den verschlüsselten Textstring. Um diesen wieder zu entschlüsseln, rufen Sie einfach die Funktion VerEntschlüsseln erneut auf, jedoch nun mit der Variable Code.

' String entschlüsseln
source = VerEntschlüsseln(code, password)

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