AGB  ·  Datenschutz  ·  Impressum  







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

Caesar Verschlüsselung Probleme

Ein Thema von issejal · begonnen am 28. Nov 2005 · letzter Beitrag vom 28. Nov 2005
Antwort Antwort
Seite 1 von 2  1 2      
issejal

Registriert seit: 4. Nov 2005
5 Beiträge
 
#1

Caesar Verschlüsselung Probleme

  Alt 28. Nov 2005, 19:58
hallo,
ich versuche gerade einen Text per Caesar-Verschlüsselung wie folgt zu verschlüsseln:

function decodeBuchstabe(c: Char): Char;
begin

case c of
'a' : Result := 'd';
'b' : Result := 'e';
'c' : Result := 'f';
...usw.

doch ich möchte noch einen beliebigen Schlüssel hinzufügen, so dass aus a auch e wird, wenn ich den schlüssel 4 eingebe.
ich weiß aber nicht, wie ich anfangen soll, darum bitte ich um hilfe.
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

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

Re: Caesar Verschlüsselung Probleme

  Alt 28. Nov 2005, 20:02
Herzlich willkommen in der DP.

Schau dir mal die Funktionen Ord und Chr an. Damit kannst du die Verschlüsselung in ein paar Zeilen machen.Vielleicht wird dir noch Lowcase weiterhelfen; damit kannst du große Buchstaben verkleinern.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
issejal

Registriert seit: 4. Nov 2005
5 Beiträge
 
#3

Re: Caesar Verschlüsselung Probleme

  Alt 28. Nov 2005, 20:13
hallo, vielen dank für die schnelle antwort
mit chr und ord habe ich noch nicht gearbeitet, weil
wenn ich den schlüssel 5 eingebe und beim X bin, kommen beim ASCII nur Zeichen.

das problem ist, dass man bei den letzten buchstaben (z.b. x,y,z) den schlüssel
ja nicht mehr addieren muss, sondern subtrahieren und das bereitet mir auch probleme.

gibt es irgendwo ein FAQ zu chr und ord?
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

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

Re: Caesar Verschlüsselung Probleme

  Alt 28. Nov 2005, 20:19
Das FAQ zu ord und chr nennt sich F1
Einfach in Delphi den Befehl markieren und F1 drücken. Dann wird der Befehl erklärt.

Zitat:
das problem ist, dass man bei den letzten buchstaben (z.b. x,y,z) den schlüssel
ja nicht mehr addieren muss, sondern subtrahieren und das bereitet mir auch probleme.
Das ist falsch, so funktioniert Caesar nicht. Wenn es so wäre, wäre die Chiffre nicht eindeutig dechiffrierbar. Wenn die jemand eine 24 schickt, wüsstest du dann nicht, ob dein Freund den 22. oder den 26. Buchstaben mit b verschlüsselt hat.
Wenn du ein x mit einem c verschlüsseln willst, denkst du dir ein erweitertes Alphabet (...xyzabc...) und landest bei a.
Im Programm könntest du das etwa so machen: besorg dir die Nummer des zu verschlüsselten Buchstaben (x->24 usw) und die des Schlüsselbuchstaben (c->3). Dann addier beide und zieh 26, ab wenn du über 26 kommst. Dann landest du hier bei 24+3=27, 27-26=1 <-> a. Jetzt musst du nur noch aus der 1 ein a machen und da hilft dir chr weiter.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
issejal

Registriert seit: 4. Nov 2005
5 Beiträge
 
#5

Re: Caesar Verschlüsselung Probleme

  Alt 28. Nov 2005, 20:35
ok gut, die rechnung verstehe ich, aber ich bin in delphi nicht der hellste,
ich weiß ehrlich nicht wie ich das in delphi soll.

mit ord() wandle ich den Buchstaben in eine zahl um und mit chr() wieder zurück.

kannst du mir bitte einen kleinen ansatz geben, wo ich drauf aufbauen kann?
  Mit Zitat antworten Zitat
simonko

Registriert seit: 2. Jun 2005
125 Beiträge
 
#6

Re: Caesar Verschlüsselung Probleme

  Alt 28. Nov 2005, 20:44
denk dir mal den algoritmus aus ohne an einer bestimmten sprache zu denken.

ich würd einfach zeichen in ascii umwandeln +n addieren und wieder in buchstaben umwandeln.
falls der buchstabe > 'z' einfach -('z'-'a') wegzählen. so in der art
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

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

Re: Caesar Verschlüsselung Probleme

  Alt 28. Nov 2005, 20:47
So als Ansatz:
Delphi-Quellcode:
var
chr: char;
x: integer;
begin
chr:='d'; // Mal als Bsp.
x:= ord(str); // Da steht jetzt was Richtung 80 drin, wenn ich mich recht erinner...
x:= x-ord('a')+1; // Jetzt hat man da schön seine 4 drin stehen.
Jetzt kannst du verschlüsseln wie du willst und nachher alle Schritte rückwärts gehen.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
issejal

Registriert seit: 4. Nov 2005
5 Beiträge
 
#8

Re: Caesar Verschlüsselung Probleme

  Alt 28. Nov 2005, 20:55
hab nen quellcode gefunden für den festen schlüssel 3:

for i:=0 to richedit1.lines.count-1 do
begin
for j:=1 to length(richedit1.lines[i]) do
if ((ord((richedit1.lines[i])[j])>64) and (ord((richedit1.lines[i])[j])<88))
then s:=s+chr(ord((richedit1.Lines[i])[j])+3)
else if ((ord((richedit1.lines[i])[j])>87) and (ord((richedit1.lines[i])[j])<91)) then s:=s+chr(ord((richedit1.Lines[i])[j])-23)
else s:=s+(richedit1.lines[i])[j];
richedit2.Lines[i]:=s;
s:='';
end;

ich glaub ich hab zu wenig mit delphi programmiert, denn schon bei dem code sehe ich nicht mehr durch.
warum schreibe ich bei ord: "ord((richedit1.lines[i])[j])"?

danke für die all die hilfe, aber ich glaub, dass ich das nie hinkriegen werde
  Mit Zitat antworten Zitat
issejal

Registriert seit: 4. Nov 2005
5 Beiträge
 
#9

Re: Caesar Verschlüsselung Probleme

  Alt 28. Nov 2005, 20:57
danke toxman für den ansatz, vielleicht schaffe ich es doch noch. sieht aber eher schlecht aus...
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

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

Re: Caesar Verschlüsselung Probleme

  Alt 28. Nov 2005, 20:57
Setz bitte erstmal [delphi ]-Tags um den Code, damit er mit Syntaxhighlighting dargestellt wird. So kann man den kaum lesen.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16:20 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