Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#13

Re: ganz einfache Verschlüsselung von einem Memo Text

  Alt 19. Nov 2005, 17:50
Hallo Penelopee,

das mit der Caesar-Chiffre ist nicht so einfach. Das Original hatte ein Standardalphabet von nur 20 Buchstaben und keine Großschrift. Eigentlich reden wir von der einfachen monozyklischen Substitution, für die Caesars Chiffre lediglich ein früher historischer Beleg ist. Julius hat das auch nicht selbst erfunden, sondern bei Sueton geklaut, aber ist schon verjährt. Hier hast du ein bischen Code:

Delphi-Quellcode:
function Cypher(const s: string; power: integer): string;
var
  i: integer;
begin
  Result := s;
  if power < 0 then
    power := (power + 224 * Succ((power div -224))) mod 224;
  if power > 0 then
    for i := 1 to Length(s) do
      if s[i] > #31 then
        Result[i] := Chr((Ord(s[i]) - 32 + power) mod 224 + 32)
end;
Testen kannst du mit zwei Buttons und einem Memo:

Delphi-Quellcode:
const
  PowerOfCesar = 3;

procedure TDemoForm.btnEncodeClick(Sender: TObject);
begin
  Memo.Lines.Text := Cypher(Memo.Lines.Text, PowerOfCesar);
end;

procedure TDemoForm.btnDecodeClick(Sender: TObject);
begin
  Memo.Lines.Text := Cypher(Memo.Lines.Text, - PowerOfCesar);
end;
Grüße vom marabu
  Mit Zitat antworten Zitat