Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ganz einfache Verschlüsselung von einem Memo Text (https://www.delphipraxis.net/57324-ganz-einfache-verschluesselung-von-einem-memo-text.html)

Penelopee 19. Nov 2005 10:43


ganz einfache Verschlüsselung von einem Memo Text
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe in einem Memo einen Text geladen und möchte wenn ich auf den Button verschlüssele klicke , dass sich alle Buchstaben um eine Stelle Verschieben , also Cäsar Verchlüsselung.Muss ich dazu alle Buchstaben speichern und dann einfach a:=b setzen oder wie mache ich das am besten???
Vielen Dank im Vorraus!

PierreB 19. Nov 2005 10:49

Re: ganz einfache Verschlüsselung von einem Memo Text
 
Cäsar Verschlüsselung hatten wir schon ein paar Mal, einfach mal die Forensuche bemühen. ;)

Penelopee 19. Nov 2005 11:28

Re: ganz einfache Verschlüsselung von einem Memo Text
 
ja ich habs gesehen.Aber da sind so lange quellcodes und das ist viel zum kompliziert.Ich möchte einen Text , der aus 2 Worten besteht:'Hallo du' , möchte ich verschlüsseln.

DP-Maintenance 19. Nov 2005 11:30

DP-Maintenance
 
Dieses Thema wurde von "Sharky" von "Multimedia" nach "Sonstige Fragen zu Delphi" verschoben.
Ist irgendwie keine Multimedia frage ;-)

Maximus 19. Nov 2005 11:45

Re: ganz einfache Verschlüsselung von einem Memo Text
 
Es gibt viele verschiedene Wege so eine Verschlüsselung umzusetzen ...

Eine Möglichkeit ist z.b. dass du ein Schlüssel nimmst, den aktuellen Buchstaben suchst und dann durch den nächsten ersetzt

Delphi-Quellcode:
function Verschluessle(Text: String) : String;

const
 Key = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ ';

{ ... }

function Verschluessle(Text: String) : String;
var i,j: Integer;
begin
 Result := ''; //Ergebniss zurücksetzen

 for i := 1 to length(Text) do //Jeden Buchstaben des Textes durchgehen
 begin
   for j := 1 to 27 do //Jeden Buchstaben des Schlüssels durchgehen
   begin
     if Text[i] = Key[j] then //Sobald der Buchststabe gefunden ist
      Result := Result + Key[j+1]; //Den nächsten Buchstaben des Schlüssels hinzufügen
   end;
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Memo1.Lines.Text := Verschluessle(Memo1.Lines.Text); //Möglicher ausruf der Funktion
end;
Natürlich funktioniert dies nur mit Großbuchstaben, aber ich denke du wirst hier auch ganz leicht Kleinbuchstaben implementieren können, und noch diverse Bugs behebn können. (Eigeninitiative)

MFG
Maximus

Penelopee 19. Nov 2005 16:16

Re: ganz einfache Verschlüsselung von einem Memo Text
 
Hier ist nochmal mein Quelltext:
Delphi-Quellcode:
var
  Form1: TForm1;
  Text:string;

implementation

{$R *.dfm}

procedure TForm1.FormActivate(Sender: TObject);
begin
Text:='Wer diesen Text verschlüsseln kann ist gut';
Memo1.Lines.Text:=Text;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Memo1.Clear;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin

end;

end.
Ich möchte jetzt diesen Text ganz einfach verschlüsseln.Brauche ich dafür eine Funktion oder geht das auch ohne??

ichbins 19. Nov 2005 16:42

Re: ganz einfache Verschlüsselung von einem Memo Text
 
Probier mal das:
Delphi-Quellcode:
procedure encode(key:integer);
var
  i,j,k,pos:integer;
  s:string;
  done:tpoint;
const
  letters:string='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ßöäüÖÄÜ'; //diese Buchstabenliste kann beliebig erweitert werden.
begin
  for i:=0 to form1.memo1.lines.Count-1 do
    for j:=1 to length(form1.memo1.lines.Strings[i]) do
      for k:=1 to length(letters) do
        if byte(form1.memo1.lines.Strings[i][j])=byte(letters[k]) then
        begin
          if not ((done.x=i) and (done.y=j)) then
          begin
            pos:=k+key;
            while pos>length(letters) do
              pos:=pos-length(letters);
            while pos<1 do
              pos:=pos+length(letters);
            s:=form1.memo1.lines.strings[i];
            s[j]:=letters[pos];
            form1.memo1.lines.Strings[i]:=s;
            done.X:=i;
            done.Y:=j;
          end;
        end;
end;

Penelopee 19. Nov 2005 17:36

Re: ganz einfache Verschlüsselung von einem Memo Text
 
das funktionirt irgendwie nicht , danke für die mühe!!!!

3_of_8 19. Nov 2005 17:41

Re: ganz einfache Verschlüsselung von einem Memo Text
 
Mal ne ganz einfache Möglichkeit:

Verschlüsseln:
Delphi-Quellcode:
function encodestr(Str: String; Key: Byte): String;
var I: Cardinal;
begin
Result:=Str;
for I:=1 to length(Result) do
Result[I]:=Chr(Ord(Result[I]) xor Key);
end;
Zum Entschlüsseln eines Strings die Funktion encodestr einfach noch einmal anwenden, das ganze ist umkehrbar.

Die "Cäsarverschlüsselung" ist auch ganz einfach:

Delphi-Quellcode:
function encodestr(Str: String): String;
var I: Cardinal;
begin
Result:=Str;
for I:=1 to length(Result) do
Result[I]:=Chr(Ord(Result[I])+1);
end;


function decodestr(Str: String): String;
var I: Cardinal;
begin
Result:=Str;
for I:=1 to length(Result) do
Result[I]:=Chr(Ord(Result[I])-1);
end;

Ultimator 19. Nov 2005 17:45

Re: ganz einfache Verschlüsselung von einem Memo Text
 
Delphi-Quellcode:
function encodestr(Str: String; Key: Byte): string;
var I: Cardinal;
begin
  Result:=Str;
  for I:=1 to length(Str) do
   Result[I]:=Chr(Ord(Result[I] xor Key);
end;
Du hast vergessen, den Typ des Result anzugeben ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:40 Uhr.
Seite 1 von 3  1 23      

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