Immer wieder wird gefragt, wie sich ein Text sicher verschlüsseln lässt – und Verschlüsselungsalgorithmen gibt es wie Sand am Meer. Aber sind diese auch sicher?
Um auf Nummer sicher zu gehen, sollten Sie eine “reine” Vernam-Verschlüsselung anwenden. Dort wird ebenfalls XOR verwendet. Allerdings wird jedes Zeichen des Klartextes nur mit EINEM Zeichen des Passwortes verschlüsselt. Unter der Annahme, dass jedes Passwort-Zeichen echt zufällig gewählt wurde, das Passwort genauso lang ist wie der Klartext und das Passwort nur einmal verwendet wird, ist dieses Verfahren sogar nachgewiesenermaßen das einzig bekannte absolut sichere Verfahren.
Für die Verschlüsselung nach Vernam können Sie folgende Funktion benutzen:
' Sicherer Textverschlüsselung
Public Function VernamCode(sOriginal As String, _
sPassword As String) As String
Dim i As Long
Dim aktpos As Long
Dim bAkt As Byte
Dim bCode As Byte
VernamCode = ""
' Passwort auf die Länge des Klartextes bringen
' Dazu wird z.B. aus "Geheim" dann "GeheimGeheimGehe...."
aktpos = 1
For i = Len(sPassword) + 1 To Len(sOriginal)
sPassword = sPassword & Mid(sPassword, aktpos, 1)
aktpos = aktpos + 1
If aktpos > Len(sPassword) Then aktpos = 1
Next i
For i = 1 To Len(sOriginal)
bAkt = Asc(Mid(sOriginal, i, 1))
bCode = Asc(Mid(sPassword, i, 1))
VernamCode = VernamCode & Chr(bAkt Xor bCode)
Next i
End Function
Beispiel für den Einsatz von VernamCode:
' String verschlüsseln
Dim sOriginal As String
Dim sPassword As String
Dim sCode As String
sOriginal = "vb@rchiv"
sPassword = "geheim"
sCode = VernamCode(sOriginal, sPassword)
MsgBox sCode
Um wieder zu entschlüsseln:
' und wieder entschlüsseln
sOriginal = VernamCode(sCode, sPassword)