Buchempfehlung
Visual Basic 6 Kochbuch
Visual Basic 6 Kochbuch
Viele praktische Tipps zum Programmieren mit Visual Basic 6, die sich oft auch auf FB übertragen lassen. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Code-Beispiel

Code-Beispiele » Verschlüsselung

RC4-Stromchiffre

Lizenz:Erster Autor:Letzte Bearbeitung:
LGPLRedakteurMao 18.10.2008

RC4 ist ein einfacher Stromchiffre-Algorithmus, der mit nur wenigen Zeilen Code implementiert werden kann.

Type t_SBox
  Dim SBox(0 To 255) As Unsigned Byte
End Type

Declare Sub InitialisiereSBox(ByRef SBox As t_SBox)
Declare Sub BelegeSBox(ByRef Schluessel As String, ByRef SBox As t_SBox)
Declare Sub RC4(ByRef Schluessel As String, ByRef Text As String, ByRef SBox As t_SBox)

Sub InitialisiereSBox(ByRef SBox As t_SBox)
  For i As Integer=0 To 255
    SBox.SBox(i)=i
  Next i
End Sub

Sub BelegeSBox(ByRef Schluessel As String, ByRef SBox As t_SBox)
  Dim As Integer j

  For i As Integer=0 To 255
    j=(j+SBox.SBox(i)+Schluessel[i Mod Len(Schluessel)]) Mod 256
    Swap SBox.SBox(i), SBox.SBox(j)
  Next i
End Sub

Sub RC4(ByRef Schluessel As String, ByRef Text As String, ByRef SBox As t_SBox)
  Dim As Integer i, j, k. Zufallsbyte

  For k=1 To Len(Text)
    i=(i+1) Mod 256
    j=(j+SBox.SBox(i)) Mod 256
    Swap SBox.SBox(i), SBox.SBox(j)
    Zufallsbyte=SBox.SBox((SBox.SBox(i)+SBox.SBox(j)) Mod 256)
    Text[k-1]=Zufallsbyte Xor Text[k-1]
  Next k
End Sub

Verwendungsbeispiel:

Dim As t_SBox mySBox
Dim As String key="key"
Dim As String text="Keine Verschluesselung ist absolut sicher!"

InitialisiereSBox(mySBox)
BelegeSBox(key, mySBox)
RC4(key, text, mySBox)

Print text

InitialisiereSBox(mySBox)
BelegeSBox(key, mySBox)
RC4(key, text, mySBox)

Print text
Sleep

Zusätzliche Informationen und Funktionen
  • Das Code-Beispiel wurde am 15.03.2008 von RedakteurMao angelegt.
  • Die aktuellste Version wurde am 18.10.2008 von RedakteurMao gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen