Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Verschlüsselungs Problem mit ASCII Zeichen (https://www.delphipraxis.net/58780-verschluesselungs-problem-mit-ascii-zeichen.html)

Manze 14. Dez 2005 21:13

Re: Verschlüsselungs Problem mit ASCII Zeichen
 
Nabend, hab gestern eine seite gefunden auf der ein paar beispiele für Verschlüsselungen sind. Die machen das so, das die auf Datei basis arbeiten. Vieleicht hilfts dir ja.

Hier der link: http://www.gymmelk.ac.at/~nus/Delphi/Delphi10.htm

Cicaro 15. Dez 2005 09:54

Re: Verschlüsselungs Problem mit ASCII Zeichen
 
@Penelope:
Zur Erstellung des One-Time-Pad-Keys, wie du ihn beschrieben hast:

Delphi-Quellcode:
function GetOneTimePadKey(Text:String):String;var i:Integer;
begin
  // Länge festlegen
  SetLength(Result,Length(Text));
  // zufällige Zeichen
  for i:=1 to Length(Result) do
    Result[i]:=Char(Min_ASCII_Code+Random(Max_ASCII_Code-Min_ASCII_Code+1));
  // Min_ASCII_Code und Max_ASCII_Code können beispielsweise 65 und 90 sein
end;

Penelopee 15. Dez 2005 14:42

Re: Verschlüsselungs Problem mit ASCII Zeichen
 
Zitat:

Zitat von Cicaro
@Penelope:
Zur Erstellung des One-Time-Pad-Keys, wie du ihn beschrieben hast:

Delphi-Quellcode:
function GetOneTimePadKey(Text:String):String;var i:Integer;
begin
  // Länge festlegen
  SetLength(Result,Length(Text));
  // zufällige Zeichen
  for i:=1 to Length(Result) do
    Result[i]:=Char(Min_ASCII_Code+Random(Max_ASCII_Code-Min_ASCII_Code+1));
  // Min_ASCII_Code und Max_ASCII_Code können beispielsweise 65 und 90 sein
end;

Wie kann ich einstellen , dass der key genau so lang sein soll wie der Klartext???

marabu 15. Dez 2005 15:36

Re: Verschlüsselungs Problem mit ASCII Zeichen
 
Hallo.

Warum Text übergeben, wenn nur die Länge genügt? Das ist eine unnötige Abhängigkeit von Delphi Implementierungsdetails. Und das Addieren von 1 innerhalb von Random() muss natürlich weg.

Delphi-Quellcode:
function GetOneTimePadKey(size: cardinal): string;
var
  i: integer;
begin
  SetLength(Result, size);
  for i := 1 to Length(Result) do
    Result[i] := Chr(Min_ASCII_Code + Random(Max_ASCII_Code - Min_ASCII_Code));
end;
Grüße vom marabu

Penelopee 15. Dez 2005 16:13

Re: Verschlüsselungs Problem mit ASCII Zeichen
 
Hier nochmal mein Quelltext:
Delphi-Quellcode:
procedure TForm1.FormActivate(Sender: TObject);
begin

s:=Memo1.Lines.Text;
end;

function GetOneTimePadKey(Text:String):String;var i:Integer;
begin

  SetLength(Result,Length(Text));

  for i:=1 to Length(Result) do
    Result[i]:=Char(Random(255));

end;

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;

begin

for i:=1 to length(s)
 do begin
  s[i] := Chr( Ord(s[i]) + 3);
   end;

Memo1.Lines.Text:=s;
end;
Also den key hab ich jetzt erstellt bekommen , aber im Moment wird einfach nur immer der Text um 3 Zeichen verschoben , wie kann ich das machen , dass der Text so verschlüsselt wird , dass ich ihn mit dem zufällig erstelltem key entschlüsseln kann????
Danke schon mal!

St.Pauli 15. Dez 2005 17:34

Re: Verschlüsselungs Problem mit ASCII Zeichen
 
So - setzt aber vorraus, dass s und ZufString die gleiche Länge haben...

Delphi-Quellcode:
for i:=1 to length(s) do
  begin
    s[i] := Chr(Ord(s[i]) XOR Ord(ZufString[i]));
  end;

Penelopee 15. Dez 2005 19:11

Re: Verschlüsselungs Problem mit ASCII Zeichen
 
Zitat:

Zitat von St.Pauli
So - setzt aber vorraus, dass s und ZufString die gleiche Länge haben...

Delphi-Quellcode:
for i:=1 to length(s) do
  begin
    s[i] := Chr(Ord(s[i]) XOR Ord(ZufString[i]));
  end;

was meinst du mit "Zufstring"??Und was macht das xor?

Cicaro 22. Dez 2005 09:21

Re: Verschlüsselungs Problem mit ASCII Zeichen
 
Zitat:

Zitat von Penelopee
Also den key hab ich jetzt erstellt bekommen , aber im Moment wird einfach nur immer der Text um 3 Zeichen verschoben , wie kann ich das machen , dass der Text so verschlüsselt wird , dass ich ihn mit dem zufällig erstelltem key entschlüsseln kann????
Danke schon mal!

Ich hab' diese One-Time-Pad-Sache zwar nicht ganz parat, aber ich würde das spontan wie folgt machen:
Delphi-Quellcode:
// Wichtig: den One-Time-Pad-Key aufbewahren sonst kann man den Text nicht mehr entschlüsseln
// Key ist als String verfügbar
// A: Verschiebung um 0
// B: Verschiebung um 1 ...
if Length(S)>0 then
  for i:=1 to Length(S) do
    begin
      S[i]:=Chr(65 + ((Ord(S[i]) - 65) + (Ord(Key[S]) - 65)) mod 26 );
    end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:26 Uhr.
Seite 2 von 2     12   

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