Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Verschlüsselungstool (https://www.delphipraxis.net/143064-verschluesselungstool.html)

DeddyH 9. Nov 2009 13:58

Re: Verschlüsselungstool
 
Und Finden ist gut, Nachvollziehen und Verstehen ist noch besser, dann kommst Du auch von ganz alleine auf die Lösung ;)

Wolfgang Mix 9. Nov 2009 14:05

Re: Verschlüsselungstool
 
Detlef hat hier geschrieben:

Zitat:

Das große A hat den Code 65, d.h. Ord('A') ergibt 65, umgekehrt ergibt Chr(65) das große A. Also musst Du nur aus der 65 die 68 machen, um auf D zu kommen.
In Ergänzung dazu:

Drucke Dir 'mal 'ne ASCII-Tabelle aus, dann wird vielleicht einiges klarer.

Gruß

Wolfgang

himitsu 9. Nov 2009 14:09

Re: Verschlüsselungstool
 
Delphi-Quellcode:
tmp := Ord(AText[i]) - Ord('A');        // Normalisieren
tmp := (26 + (tmp - normedKey)) mod 26; // Verschieben
Result[i] := Chr(tmp + Ord('A'));       // Denormalisieren
Normalisieren macht aus A=0, B=1 usw.
bei Denormalisieren ist es genau andersrum

und das in der Mitte würde ich mal etwas verständlicher übersetzen

Delphi-Quellcode:
tmp := Ord(AText[i]) - Ord('A');        // Normalisieren

tmp := tmp + normedKey;                 // Verschieben
if tmp >= 26 {Z} then tmp := tmp - 26;

Result[i] := Chr(tmp + Ord('A'));       // Denormalisieren

und wenn du jetzt aus AKey noch einen String machst und dort ebenfalls jeweils ein Zeichen für die Verschiebung nimmst, dann hast du schon deine Lösung
Code:
der zu verschlüsselnde Text.

Schlüssel
         Schlüssel
                  Schlüssel
                           S

pronoob1 9. Nov 2009 14:17

Re: Verschlüsselungstool
 
Hallo,

Ich hab so ein ähnliches Problem und dachte, dass es vielleicht reichen würde, wenn ich bei der Zeile:

normedKey := Ord(AKey) - Ord('A') + 1;

einfach

normedKey := Ord(AKey) - Ord('A') +StrToInt(edit1.text);

mache, aber da tritt dann ein Fehler auf, weil edit1 ein undefinierter Bezeichner ist ?!

Wolfgang Mix 9. Nov 2009 14:26

Re: Verschlüsselungstool
 
Dann versuche 'mal

Delphi-Quellcode:
normedKey := Ord(AKey) - Ord('A') +StrToInt(Form1.Edit1.Text);
Gruß

Wolfgang

DeddyH 9. Nov 2009 14:27

Re: Verschlüsselungstool
 
Innerhalb der Funktion ist Edit1 nicht bekannt. Du kannst also entweder eine Methode des Formulars daraus machen, einen zusätzlichen Parameter definieren oder einfach den Namen des Edits qualifizieren (Form1.Edit1 oder wie das bei Dir heißt).

pronoob1 9. Nov 2009 14:51

Re: Verschlüsselungstool
 
Danke für die schnelle Hilfe,
habs jetz so gemacht wie ihrs gesagt habt, nur noch davor "-2", weil
beim Verschlüsseln, der Buchstabe immer um 3 Stellen verschoben wurde, sieht also jetz so aus:

normedKey := Ord(AKey) - Ord('A') -2 +StrToInt(Form1.Edit1.Text);

lg

Tobi

Wolfgang Mix 9. Nov 2009 14:53

Re: Verschlüsselungstool
 
Geht doch :-D

pronoob1 9. Nov 2009 14:55

Re: Verschlüsselungstool
 
oft sinds ja dann nur so Kleinigkeiten und da ärger ich mich schon, aber naja was will man machen,
wie mein alter Lehrer immer sagte ("Das Leben ist hart und ungerecht") :mrgreen:

Sherlock 9. Nov 2009 15:02

Re: Verschlüsselungstool
 
Äh...Akey ist aber doch der "Index" um den verschoben werden soll. Wieso soll da noch irgendein Edit angeflanscht werden? Der Inhalt des Edits wird als AKey übergeben...oder hab ich was falsch verstanden?

:gruebel:

Edith sagt: Sinn von AKey, so wie ich iohn verstanden habe: Ersetze den Buchstaben "A" mit Buchstaben AKey und die weiteren entsprechend.

Sherlock


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:50 Uhr.
Seite 2 von 3     12 3      

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