Einzelnen Beitrag anzeigen

Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#4
  Alt 3. Sep 2002, 20:49
Hi worker,

prinzipell gilt: alles kan man knacken, und diese Lösung, die ich dir jetzt vorstellen werde, ist zwar einfach, aber wenn das Passwort nur ein paar Zeichen lang ist. dann braucht ein guter Cracker keine halbe Stunde dafür. Deshalb gilt: lange Passwörter verwenden!

Also, die Grundlage dieser Verschlüsselung ist der Operator XOR (deshalb heißt sie XOR-Verschlüsselung). Ein Bbeispiel, wie dieser Operator funktioniert:

Code:
    101011 (43)
xor 001110 (12)
---------------
    100101 (14)

43 xor 12 = 14
Also, wenn die beiden Zahlen im Binärcode übereinder stehen, dann kommt an die jeweileige Stelle im Ergebnis eine 1, wenn entweder oben oder unten eine 1 steht, sonst kommt eine 0.

Was das jetzt mit Verschlüsselung zu tun hat, siehst du hier:

Code:
    100101 (14)
xor 001110 (12)
---------------
    101011 (43)
Hier wurde die Rechnung alszo nur umgedreht und es kommt wieder das 43 vom Anfang heraus. Also: 43 der sogenannte Plaintext, der unverschlüsselte Text (in diesem Fall der numerische Wert z.B. eines ANSI-Zeichens). 12 ist der Schlüssel und 14 der Encrypted Text, der verschlüsselte Text. Wendet man auf den Encrypted Text wieder den Schlüssel an, kommt wieder der Plaintext heraus. Bingo - Verschlüsselung und Entschlüsselung.

Im Prinzip funktioniet es also so: du hast jetz beispielsweise ein Array mit 1000 Einträgen und ein Passwort als Text. Jetz gehst du das Array Zelle für Zelle durch und jedesmal auch im Passwort einen weiter. Dann wendest du das Passwort auf den Plaintext im Array an und speicherst das ganze wieder in einem Array und schon hast du verschlüsselt:

Code:
type
  TData = array[0..99] of Integer;

function Crypt(data: TData; pw: String): TData;
var
  i, p: Integer;
begin
  p := 1;
  for i := 0 to 99 do begin
    Result[i] := data[i] xor Ord(pw[p]);
    Inc(p);
    if (p > Length(pw)) then
      p := 1;
  end;
end;
Diese Funktion kann man dann zum Ver- und Entschlüsseln verwenden.

MfG,
d3g

[edit]War wohl ein bisschen zu langsam...[/edit]
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat