• Aktualisierte Forenregeln

    Eine kleine Änderung hat es im Bereich Forenregeln unter Abschnitt 2 gegeben, wo wir nun explizit darauf verweisen, dass Forenkommentare in unserer Heftrubrik Leserbriefe landen können.

    Forenregeln


    Vielen Dank

Verschlüsselungsverfahren umsetzen in Delphi...Hilfe benötigt!!!

infiltrator17

Anwärter/in
Registriert
08.06.2003
Beiträge
40
Reaktionspunkte
0
Verschlüsselungsverfahren umsetzen in Delphi...Hilfe benötigt!!!

Hi,

ich muss für ein Kumpel ein Verschlüsselungsverfahren programmiertechnisch umsetzen...hab von ihm zwei functions gekriegt, die die Ver- und Entschlüsselung machen, jedoch schaff ich es nicht die beiden Funktionen in ein Delphi Progarmm zu implementieren...kann mir da jemand helfen??? (bin in Delphi auch nicht so konform)

Hier mal der Quellcode der Funtionen:

function code(input:widestring;codeword:string):widestring;
var buffer : widestring;
vigTab : array[97..122,97..122] of integer;
i,j,c : integer;
begin
// kleine Buchstaben:
input:=lowercase(input);
codeword:=lowercase(codeword);
// nur Buchstaben rauskopieren:
buffer:='';
while input<>'' do
begin
if ((input[1]>='a') and (input[1]<='z')) then
buffer:=buffer+input[1];
Delete(input,1,1);
end; {while input<>''}
// bilden der Vigenere Tabelle: (k.a. ob das kürzer geht!)
for i:=97 to 122 do
begin
for j:=97 to 122 do
begin
c:=i+(j-97);
if c>122 then
c:=c-(122-97);
vigTab[i,j]:=c; // hier wird der integer Wert des Buchstaben eingetragen
end;
end;
i:=1;
result:='';
//
while buffer<>'' do
begin
// Wert aus Tabelle lesen, in Char umwandeln, und an Ergebnis dranhängen:
result:=result+char(vigTab[integer(codeword),integer(buffer[1])]);
Delete(buffer,1,1);
inc(i);
if i>length(codeword) then
i:=1;
end;
end;

function decode(input:widestring;codeword:string):widestring;
var buffer : widestring;
vigTab : array[97..122,97..122] of integer;
i,j,c : integer;
begin
// kleine Buchstaben:
input:=lowercase(input);
codeword:=lowercase(codeword);
// nur Buchstaben rauskopieren:
buffer:='';
while input<>'' do
begin
if ((input[1]>='a') and (input[1]<='z')) then
buffer:=buffer+input[1];
Delete(input,1,1);
end; {while input<>''}
// bilden der Vigenere Tabelle: (k.a. ob das kürzer geht!)
for i:=97 to 122 do
begin
for j:=97 to 122 do
begin
c:=i+(j-97);
if c>122 then
c:=c-(122-97);
vigTab[i,j]:=c; // hier wird der integer Wert des Buchstaben eingetragen
end;
end;
i:=1;
result:='';
//
while buffer<>'' do
begin
// an welcher Stelle steht der codierte Wert:
for j:=97 to 122 do
begin
if (vigTab[integer(codeword),j])=integer(buffer[1]) then
begin
result:=result+char(j);
break;
end;
end;
Delete(buffer,1,1);
inc(i);
if i>length(codeword) then
i:=1;
end;
end;

Danke schon mal im vorraus.

Infiltrator
 
Zurück