Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi XOR Verschlüsselung (https://www.delphipraxis.net/12030-xor-verschluesselung.html)

Pseudemys Nelsoni 19. Nov 2003 08:04


XOR Verschlüsselung
 
Moin :o

Ich hab schon mehrere threads darüber gelesen, das einige eine "XOR-verschlüsselung" benutzen.
Kann mir jemand genau sagen wie das funktioniert? und wieso gerade XOR? soweit ich weiss is das nichts anderes als OR, bloss das nur true zurückgegeben wird wenn nur 1e sache true ist.

Sharky 19. Nov 2003 08:08

Re: XOR Verschlüsselung
 
Hai silent,

Eine XOR "Verschlüsselung" benutzen viele weil sie so schön einfach ist. Und darum ist sie auch absolut unsicher.

Warum XOR? Weil Du wenn Du eine Bitfolge mit einer anderen XOR verbindest das Ergebniss durch ein neues XOR wieder in den ursprüngszustand versetzen kannst.


Code:
    01100101
XOR 11100011
    10000110
XOR 11100011
    01100101

Pseudemys Nelsoni 19. Nov 2003 08:21

Re: XOR Verschlüsselung
 
ich verstehs noch nicht so ganz was da geprüft wird *g*

Sharky 19. Nov 2003 08:31

Re: XOR Verschlüsselung
 
Schaue dir doch mal mein Beispiel an.

In der ersten Zeile steht das was "verschlüsselt" werden soll.
Ind zeile 2 und 4 ist jeweilt mein "Schlüssel".
Wenn Zeile 1 mit dem Schlüssel XOR verknüpt wird kommt Zeile 3 Raus. Diese ist jetzt "verschlüsselt".

Wenn Du dies nochmals mit dem Schlüssel XOR verknüpfst hast Du wieder den Ursprungswert wie in Zeiel 1.

Sharky 19. Nov 2003 08:42

Re: XOR Verschlüsselung
 
Hier mal ein mini-Demo:

Delphi-Quellcode:
var
 verschluesselt : String;

procedure TForm1.Button1Click(Sender: TObject);
var
 ndx : Integer;
begin
 verschluesselt := '';
 if (Length(Edit1.Text) > Length(Edit2.Text)) then
  begin
   ShowMessage ('Der Schlüssel muss länger als der Text sein');
  end
 else
  begin
   Label1.Caption := Edit1.Text;
   for ndx := 1 to Length (Edit1.Text) do
    begin
     verschluesselt := verschluesselt + Char (((ORD (Edit1.Text[ndx])) XOR (ORD (Edit2.Text[ndx]))));
    end;
   Edit3.Text := verschluesselt;
  end;
end;
In Edit1 einen Text eingeben. In Edit2 deinen Schlüssel. Dann auf den Button klicken. Jetzt hast Du in Edit3 den verschlüsselten Text.

Wenn Du nun diesen in das Edit1 kopierst und mit dem selben Schlüssel auf Button 1 klickst sollte jetzt in Edit 3 der original Text stehen.

HAF4ever 19. Nov 2003 08:58

Re: XOR Verschlüsselung
 
im allgemeinen sieht XOR so aus:

0 xor 0 = 0
0 xor 1 = 1
1 xor 0 = 1
1 xor 1 = 0

xor ist 1 (true) wenn eines der beiden bits 1 ist, aber nicht beide.

wenn man jetzt zeichens (chars) miteinander XORdiert so wird genau das gleiche schema auf jedes einzelne bit angewendet.

01010101 xor
11110000
--------
10100101

Christian_1980 19. Nov 2003 09:08

Re: XOR Verschlüsselung
 
Hi Silent !

Zitat:

xor ist 1 (true) wenn eines der beiden bits 1 ist, aber nicht beide.
Man könnte auch sagen, wenn beide verschieden sind :wink:

Viele Grüße,

Christian

Pseudemys Nelsoni 19. Nov 2003 09:21

Re: XOR Verschlüsselung
 
danke für die hilfe leute :)

danke für das beispiel sharky

Motzi 19. Nov 2003 09:55

Re: XOR Verschlüsselung
 
Und falls du wissen willst warum man XOR nicht benutzen sollte guckst du hier: http://www.delphi-forum.de/viewtopic.php?t=13611 ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz