Hallo!
Ich habe ein Problem mit einem Verschlüsselungsprogramm für Text, das ich selber geschrieben habe; das funktioniert auch so weit.
Nur wenn ich einen längeren Text verschlüsseln lassen will, ist der Text, der dann rauskommt immer viel zu kurz. Wenn ich ihn dann entschlüsseln lasse, kommt auch nur ein bruchteil vom Originaltext raus! Was mache ich da falsch?
Hier der Code:
Delphi-Quellcode:
unit Ulticrypt_U;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 =
class(TForm)
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
Edit3: TEdit;
//Feld für das Passwort
Label3: TLabel;
Memo1: TMemo;
//Originaltext
Memo2: TMemo;
//Verschlüsselter Text
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
//Die Prozedur fürs Verschlüsseln
var S, P:
string;
I, J:integer;
begin
S:=Memo1.Text;
P:=Edit3.Text;
J:=1;
try
for I:=1
to Length(S)
do
begin
S[I]:=Chr(Ord(S[I])
xor Ord(P[J]));
inc(J);
if J> Length(P)
then
J:=1;
end;
Memo2.Text:=S;
except
ShowMessage('
Sie müssen ein Passwort eingeben!');
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
//Die Prozedur fürs Entschlüsseln
var S, P:
string;
I, J:integer;
begin
S:=Memo2.Text;
P:=Edit3.Text;
J := 1;
try
for I := 1
to Length(S)
do
begin
S[I] := Chr(Ord(S[I])
xor Ord(P[J]));
Inc(J);
if J > Length(P)
then
J := 1;
Memo1.Text:=S;
end;
except
ShowMessage('
Sie müssen ein Passwort eingeben!');
end;
end;
end.
Ich hoffe, ihr könnt mir helfen!
Julian J. Pracht