AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe:Caesar-Verfahren

Ein Thema von HelmHut · begonnen am 10. Jan 2005 · letzter Beitrag vom 12. Jan 2005
Antwort Antwort
Seite 1 von 3  1 23      
HelmHut

Registriert seit: 10. Jan 2005
8 Beiträge
 
#1

Hilfe:Caesar-Verfahren

  Alt 10. Jan 2005, 16:53
Hallo Leute,

ich muss bis Donnerstag, den 13.01.2005, ein Projekt abgeben. Ich soll mit Delphi einen Text im CAESAR-VERFAHREN verschlüsseln. Ich habe auch einen Quelltext gefunden, der aber für meine Verhältnisse zu schwer ist. Ich würde mich über eine Antwort mit einem LEICHTEREN QUELLTEXT freuen oder über eine ERKLÄRUNG MEINES QUELLTEXTES, da ich ihn inner Schule erklären muß. Ich bin sonst aufgeschmissen. BITTE UM HILFE!!!

Das ist mein Quelltext:

Delphi-Quellcode:
IF Memo1.Lines.Count > 0 THEN
begin
FOR ZNr:= 1 TO Memo1.Lines.Count DO
begin
ZOrgText:= Memo1.Lines[ZNr - 1]; //
IF length(ZOrgText) > 0 THEN
begin
ZVerschlText:= ''; //
FOR BNr:= 1 TO length(ZOrgText) DO
begin
OrgReih:= Ord(ZOrgText[BNr]); //
NeuReih:= OrgReih + SpinEdit1.Value; //
ZVerschlText:= ZVerschlText + Chr(NeuReih); //
end;
Memo2.Lines.Add(ZVerschlText); //
end
ELSE
Memo2.Lines.Add('') //
end
end;
[edit=r_kerber]Doppelpost gelöscht. Delphi-Tags eingefügt (das nächste mal bitte selbst machen)! Mfg, r_kerber[/edit]
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Hilfe:Caesar-Verfahren

  Alt 10. Jan 2005, 16:54
Ich denke doch, ein Thread reicht für dein "Problem"..
  Mit Zitat antworten Zitat
HelmHut

Registriert seit: 10. Jan 2005
8 Beiträge
 
#3

Re: Hilfe:Caesar-Verfahren

  Alt 10. Jan 2005, 17:07
Hey Dax,
ich bin leider Anfänger, was meinst denn du? Kannste mir das ausführlich aufschreiben?
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Hilfe:Caesar-Verfahren

  Alt 10. Jan 2005, 17:08
Fertige Projekte oder Quelltexte wird es hier nicht geben.
Dein Quelltext veschlüsselt alle Zeilen in einem Memo. Du solltest dir erstmal eine Funktion schreiben, die dir einen übergebenen String um eine auch übergebene Anzahl von Stellen verschiebt.
Um die Buchstaben in Zahlen zu verwandeln, werden dir die Befehle Delphi-Referenz durchsuchenord chr helfen. Die Verwendung ist recht einfach, du kannst da alles in der OH nachlesen. Wenn du dann den Ascii-Wert eines Buchstaben hast, addierst du dazu deinen Schlüssel und wandelst in per chr wieder in einen Buchstaben um. Dabei musst du natürlich darauf achten, dass, wenn du ein Z mit 2 verschlüsselst, du das Abfangen musst, um nicht aus dem Bereich der Buchstaben herrauszulaufen.

// EIn Tipp: Um aus einem Buchtstaben eine Zahl zwischen 0 und 25 zu machen kannst du diesen Code benutzen;
NR:= ord(Buchstabe)-ord('A'); Dadurch, dass du ord('A') abziehst, bekommt das A die 1 und nicht den normalen Ascii-Wert von 80 oder so.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#5

Re: Hilfe:Caesar-Verfahren

  Alt 10. Jan 2005, 17:09
Soll heißen, es genügt, wenn Du Deine Frage einmal stellst! Habe eben drei Deiner weiteren Anfragen gelöscht!
  Mit Zitat antworten Zitat
RedDust

Registriert seit: 26. Okt 2004
Ort: Könnern
96 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Hilfe:Caesar-Verfahren

  Alt 10. Jan 2005, 17:12
Delphi-Quellcode:
IF Memo1.Lines.Count > 0 THEN
  begin
    FOR ZNr:= 1 TO Memo1.Lines.Count DO
      begin
        ZOrgText:= Memo1.Lines[ZNr - 1];
//Auslesen des Textes der in der Zeile (ZNr - 1) steht (Im Memo ist die 1. Zeile immer mit der 0 Gek.)
        IF length(ZOrgText) > 0 THEN
          begin
            ZVerschlText:= ''; //Leeren des Strings, da es ja mehrere Durchläufe sind
            FOR BNr:= 1 TO length(ZOrgText) DO
              begin
                OrgReih:= Ord(ZOrgText[BNr]); //Umwandeln von Text in ASCII
                NeuReih:= OrgReih + SpinEdit1.Value; // ???
                ZVerschlText:= ZVerschlText + Chr(NeuReih); //Umwandeln von ASCII IN Text
              end;
            Memo2.Lines.Add(ZVerschlText); //Inzufügen des oben erm. textes
          end
        ELSE
          Memo2.Lines.Add('') //Ist die akt. Zeile leer dann wird aich eine leere hinzugef.
        end;
      end;
Ich hab' mal versucht es einfach auszudrücken.
Mario Franze
  Mit Zitat antworten Zitat
HelmHut

Registriert seit: 10. Jan 2005
8 Beiträge
 
#7

Re: Hilfe:Caesar-Verfahren

  Alt 10. Jan 2005, 17:16
Könntet ihr denn vielleicht die wichtigsten Zeilen in meinem Quelltext erklären, damit ich es dann verstehe?
Und wie komme ich mit dem vorhanden Quelltext nur in den Bereich der Buchstaben? So komme ich nämlich auch in die Sonderzeichen, das wollte ich aber net.
  Mit Zitat antworten Zitat
HelmHut

Registriert seit: 10. Jan 2005
8 Beiträge
 
#8

Re: Hilfe:Caesar-Verfahren

  Alt 10. Jan 2005, 17:19
was heißen denn speziell die ersten Zeieln, der Anfang wird wohl wichtig sein.
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#9

Re: Hilfe:Caesar-Verfahren

  Alt 10. Jan 2005, 17:21
Zitat von HelmHut:
Könntet ihr denn vielleicht die wichtigsten Zeilen in meinem Quelltext erklären, damit ich es dann verstehe?
Und wie komme ich mit dem vorhanden Quelltext nur in den Bereich der Buchstaben? So komme ich nämlich auch in die Sonderzeichen, das wollte ich aber net.
Wie bitte? Von wem ist denn der Quelltext?
Und pushen nach drei Minuten ist hier nicht gern gesehen (genauswenig wie Mehrfachposting)!
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.837 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

Re: Hilfe:Caesar-Verfahren

  Alt 10. Jan 2005, 17:22
Zitat von HelmHut:
ich muss bis Donnerstag, den 13.01.2005, ein Projekt abgeben. Ich soll mit Delphi einen Text im CAESAR-VERFAHREN verschlüsseln. Ich habe auch einen Quelltext gefunden, der aber für meine Verhältnisse zu schwer ist. Ich würde mich über eine Antwort mit einem LEICHTEREN QUELLTEXT freuen oder über eine ERKLÄRUNG MEINES QUELLTEXTES, da ich ihn inner Schule erklären muß. Ich bin sonst aufgeschmissen. BITTE UM HILFE!!!
Hallo,
zuerst mal herzlich willkommen im Delphi Praxis Forum.

Ein paar Punkte dind mit bei Deinem 1. Beitrag aufgefallen:
  1. Du hast in Tutorials und Kurse geposted
    Diese Sparte ist eigentlich dafür da um tutorials zu posten, nicht Fragen.
    Ich vermute das Du das nur nicht gewust hast weil Du neu hier bist.
    (An einen Admin: Kann man diesen Thread bitte verschieben?)
  2. Ich möchte Dich freundlich aber bestimmt auf den Verhaltenskodex hinweisen.
    Abschnit 2.3.2.3 ( http://www.delphipraxis.net/dpX_faq_...?faq=Q_10#Q_10 )

Da Du das bestimmt nicht mit Absicht gemacht hast, gebe ich Dir hier ein paar Tips und Hinweise (keine Lösung)

Was ist die Caesar Verschlüsselung?
Jeder Buchstabe wird um 3 Buchstaben verschoben.
Aus A wird D, aus B wird E, ...
Das könnte man z.B. so lösen:
Delphi-Quellcode:
var
  s: string;
...
begin
  s := 'Das ist ein Test.'
...
  s[2] = Chr( Ord(s[2]) + 3);
...
Mit s[2] greift man auf den 2. Buchstaben von der Zeichenkette s zu. (s[3] ist der 3. Buchstabe usw)

Ord( Buchstabe ) wandelt einen Buchstaben in den Ascii Wert um (Byte von 0 bis 255)
Chr( Ascii Wert ) wandelt einen Ascii Wert in einen Buchstaben um (Char)

Ein erfahrener Delphi Programmierer würde einen Anderen Befehl benutzen:
Delphi-Quellcode:
...
  inc(s[i], 3);
...
Damit wird der Ascii Wert auch um 3 Zeichen verschoben.

Zum Entschlüsseln verwendet man folgendes:
Delphi-Quellcode:
...
  s[2] = Chr( Ord(s[2]) - 3);
  // oder
  dec(s[i], 2);
...
Mit Length(s) bekommt man die Länge des Strings.

Also braucht man nur noch eine Schleife zu bauen vom 1. bis zum letztem Buchstaben und für jeden Buchstaben diese Verschlüsselung anwenden.

Mach Dir auch ein paar Gedanken zu den Buchstaben X, Y und Z.
Diese können nicht durch einfaches Addieren einer 3 verschlüsselt werden, da 'X' + 3 nicht A ergibt, sondern ein Sonderzeichen.

So, nun müsstest Du aber selbst zurecht kommen.

Viel Spaß
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz