Cäsar Chiffre

Der O

Mitglied
Hallo,

wir sollen mit dem Cäsar Chiffre eine Zahlenreihe verschlüsseln.

Es werden Zahlen eingegeben, dann soll zu jeder Zahl 3 addiert werden.
Geht es nach der Addition über 10 hinaus (zB 8 +3) soll mit dem Zählen wieder von vorne angefangen werden (also hier eine 1 ausgegeben werden).

Frage:
Wie nehme ich mir die Zahlen , welche über ein Textfeld eingegeben werden (als zusammenhängende Zahlenreihe), einzeln heraus und führe die Chiffrierung durch?

Es wäre nett, wenn mir da jemand einen Gedankenanstoß geben könnte, im Netz hab ich nichts brauchbares gefunden...

Danke!
 
Wir haben sowas ähnliches neulich mal in der Schule gemacht.
Da ging es darum, Buchstabenfolgen zu verschlüsseln.

Ich habe das mit der middle Funktion gemacht.
Also z.B.

var1 = middle(var2, 3, 2)

In dem Beispiel sucht er dir aus der Variable 2 ab dem dritten Zeichen die nächsten zwei Zeichen raus.

Wenn du das ganze dann in eine Schleife einbaust mit Startwert = 1 und Endwert = Länge der Zeichenfolge, kannst der Reihe nach alle Ziffern auslesen.

Dann musst in der Schleife halt noch 3 dazuzählen und wieder alles zu einer Zahlenfolge zusammensetzen.

For i = 1 To Länge
var1 = middle(var2, i, 1)
var1 = var1 & var1 + 3
Next i

vlg, Ines
 
wenn nen Text hast, der WIRKLICH sicher verschlüsselt werden soll, dan nwürde ich dir ein anderes Verfahren empfehlen!

Dieses wurde mal in Japan entwickelt, und ist eigentlich recht einfach!

Der Trick besteht im eigentlichen darin, jedes Zeichen, mit dem davor generiertem zu verschmelzen!

Daruch wird es unmöglich, OHNE den richtigen Schlüssel den text zu encodieren!


Code:
Public Event Stat(Data As String)

Public Function DataCrypt(Data As String, Password As String) As String
Dim D As String
Dim X As Long
Dim Y As Long
Dim O As String
Dim T As Integer
Dim Pass As String
Dim LD As Long
Dim LP As Long
D = Data
Pass = Password
LD = Len(Data)
LP = Len(Pass)
O = ""
For X = 1 To LD
    T = Asc(Mid(D, X, 1))
    For Y = 1 To LP
        T = T Xor Asc(Mid(Pass, Y, 1))
    Next
    O = O & Chr(T)
Next
DataCrypt = O
End Function

Public Function DataDeCrypt(Data As String, Password As String) As String
Dim D As String
Dim X As Long
Dim Y As Long
Dim O As String
Dim T As Integer
Dim Passwort As String
Dim Pass As String
Dim LD As Long
Dim LP As Long
D = Data
Pass = Password
LD = Len(Data)
LP = Len(Pass)
O = ""
For X = 0 To LD - 1
    T = Asc(Mid(D, LD - X, 1))
    For Y = 0 To LP - 1
        T = T Xor Asc(Mid(Pass, LP - Y, 1))
    Next
    O = Chr(T) & O
Next
DataDeCrypt = O
End Function

Public Function PassCrypt(Username As String, Passwort As String, Rechte As String, CryptLen As Long) As String
'On Error Resume Next
Dim U As String
Dim P As String
Dim R As String
Dim UL As Long
Dim PL As Long
Dim RL As Long
Dim UX As Long
Dim PX As Long
Dim RX As Long
Dim CL As Long
Dim MC As Long
Dim OP As String
Dim TL As Long
Dim AKS As Long
Dim LS As Long
Dim X As Long
Dim Y As Long
Dim T As Integer
Dim K As String
Dim KL As Long
Dim KX As Long
Dim TK As String
Dim LAKS As Long

U = Username
P = Passwort
R = Rechte
UL = Len(U)
PL = Len(P)
RL = Len(R)
CL = CryptLen
OP = ""
LS = 1
LAKS = 1
UX = 1
PX = 1
RX = 1

MC = UL + PL + RL
For Y = 1 To MC
    If UX > UL Then
        UX = 1
    End If
    If PX > PL Then
        PX = 1
    End If
    If RX > RL Then
        RX = 1
    End If
'    RaiseEvent Stat("AKS:" & CStr(AKS))
    AKS = AKS Xor CLng(Sqr(CDbl(Asc(Mid(U, UX, 1))) * 100))
'    RaiseEvent Stat("AKS:" & CStr(AKS))
    AKS = AKS Xor CLng(Sqr(CDbl(Asc(Mid(P, PX, 1))) * 100))
'    RaiseEvent Stat("AKS:" & CStr(AKS))
    AKS = AKS Xor CLng(Sqr(CDbl(Asc(Mid(R, RX, 1))) * 100))
'    RaiseEvent Stat("AKS:" & CStr(AKS))
    LAKS = AKS
    KL = Len(OP)
    For X = 1 To CL
        If KX < 1 Then
            KX = KL
        End If
        AKS = AKS Xor LAKS
        If KL > 0 Then
            AKS = AKS Xor Asc(Mid(OP, KX, 1))
        End If
        KX = KX - 1
    Next
    OP = OP & Chr(CInt(AKS))
    RaiseEvent Stat("OG:" & OP)
    UX = UX + 1
    PX = PX + 1
    RX = RX + 1
Next
PassCrypt = OP
End Function

Diese funktionen ver und entschlüsseln JEGLICHEN art von Daten-Strom!

Auch Programme können damit verschlüsselt werden!

NICHT KNACKBAR! nur mit Brute-Force, allerdings ist da schon ne geraume zeit ervorderlich! :D ... je nach Schlüsselgrösse!


Greez
TPM
 
Wow!

Super geil was du da reingesetzt hast. vielen dank! :-)

Leider müssen wir den Cäsar nehmen, aber deine Sache schau ich mir mal etwas genauer an!

Danke auch an Ines!
 
Zurück