AGB  ·  Datenschutz  ·  Impressum  







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

Delphi: Kryptographie!

Ein Thema von sherman · begonnen am 19. Sep 2005 · letzter Beitrag vom 19. Sep 2005
Antwort Antwort
sherman

Registriert seit: 19. Sep 2005
1 Beiträge
 
#1

Delphi: Kryptographie!

  Alt 19. Sep 2005, 13:37
Hallo!

Wir behandeln im Informatik gerade Delphi und unsere Aufgabe ist es, eine Verschlüsselung zu erstellen.
Wir hatten bereits Caesarverschlüsselungen durchgenommen (jeder buchstabe wird um einen bestimmten wert erhöht) und Vigenère. Nun sollen wir selbst eine polyalphabetische Verschlüsselung erstellen. Wir haben dazu noch ca. 1 Woche Zeit.

Ich hatte mir folgendes überlegt: Der String(z.B. "Dieser Text ist geheim") soll quasi in eine tabelle eingeteilt werden mit 5 spalten:

D I E S E
R _ T E X
T _ I S T
_ G E H E
I M

und soll nun vertikal ausgelesen werden: DRT II GMETTESESHEXTE .

ich bräuchte irgendwie eine hilfe, wie ich starten könnte, wie teile ich das denn in solche tabellen ein? mit modulus oder so etwas vllt?

Fände es super, wenn jemand helfen könnte, bitte beachtet, dass ich noch nicht sehr gut in Delphi bin.

Vielen Dank,
sherman.
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#2

Re: Delphi: Kryptographie!

  Alt 19. Sep 2005, 13:56
ich hab mal vor langer Zeit ein Algo geschrieben für Polyalphabetische...
Willst du genau das haben oder suchst du was anderes? Wenn ja, dann suche ich es dir mal raus.

MFG Alex
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Delphi: Kryptographie!

  Alt 19. Sep 2005, 14:14
Zitat von sherman:
und soll nun vertikal ausgelesen werden: DRT II GMETTESESHEXTE .
Meinst du nicht, es sollte "Drt ii gmeTie sesh exte " rauskommen???

Dein Problem ist doch einfach zu lösen

1. ein festes Array[0..4] TAr
2. eine Array Liste von TAr
3. ne Funktion, die aus einem String 5 Buchstaben ausliest und in ein Array packt und dieses in der Liste Speichert, wichtig dabei, Wenn keine 5 zeichen mehr vorhanden sind mit leerzeichen auffüllen!!!
4. die Ausgabefunktion, sprich 1. Buchstabe (komplette Liste), 2. Buchstabe (komplette Liste) ...... n(5). Buchstabe (komplette Liste)

Bye
Christian
  Mit Zitat antworten Zitat
DerDan

Registriert seit: 15. Nov 2004
Ort: Donaueschingen
251 Beiträge
 
Delphi XE3 Professional
 
#4

Re: Delphi: Kryptographie!

  Alt 19. Sep 2005, 14:31
wenn ich das richtig sehe, willst du


zunächst Buchstabe 1,6,11,16 usw
dann Buchstabe 2,7,12,18
dann Buchstabe 3,8,13,19


meinst du, dass man da tatsächlich erst den string umsortieren muss?

DerDan
nichts ist so schön wie man es sich vorstellt
  Mit Zitat antworten Zitat
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Delphi: Kryptographie!

  Alt 19. Sep 2005, 14:44
Performater ist das zumindest nicht, würde aber verständlicher sein...

Und festes Array of Char <> String (wie mans nimmt)

Bye
Christian
  Mit Zitat antworten Zitat
Benutzerbild von Grishnak
Grishnak

Registriert seit: 15. Sep 2005
Ort: Neu-Ulm
111 Beiträge
 
RAD-Studio 2009 Arc
 
#6

Re: Delphi: Kryptographie!

  Alt 19. Sep 2005, 15:04
Machts doch nicht so kompliziert! Einfach den ursprünglichen String in einem bestimmten Abstand (hier: 5) durch-'hüpfen' und einen neuen String zusammenbauen, dann die Anfangsposition um 1 erhöhen und die nächsten 5er-Abstände holen...

So etwa:
Delphi-Quellcode:
function PolyAlphaCode(AString: string; AWidth: integer = 5): string;
var
  i, pos: integer;
begin
  (* evtl. "fehlende" Leerzeichen anhängen *)
  while Length(AString) mod AWidth > 0 do
    AString:=AString+' ';

  (* den gewünschten Zeichenabstand durchlaufen *)
  for i:=0 to AWidth-1 do
    begin
      (* mit erstem Zeichen der Folge anfangen *)
      pos:=1;
      while pos+i <= Length(AString) do
        begin
          (* codierten String zusammenbauen *)
          Result:=Result+AString[i+pos];
          Inc(pos, AWidth);
        end;
    end;
end;

function PolyAlphaDecode(AString: string; AWidth: integer = 5): string;
begin
  (* aus Breite wird Höhe + überzählige Leerzeichen am Ende entfernen *)
  Result:=Trim(PolyAlphaCode(AString, Length(AString) div AWidth));
end;
Mach' etwas idiotensicher und irgendjemand erfindet einen besseren Idioten!
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Delphi: Kryptographie!

  Alt 19. Sep 2005, 15:09
Könnte man nicht einfach, ne whilfe-Schleife mit Abbruchbedingung, dass der String zu Ende ist nehmen, die den String durchläuft, eine Zählvariable (i oder so) um 5 erhöht und dann den i-ten Buchstaben des Strings an einen neuen String anfügt?

Etwa so:
Delphi-Quellcode:
i := 1;
while OrigStr[i] <> #0 do
  begin
    EncStr := EncStr + OrigStr[i];
    inc(i, 5);
  end;
Evtl. kann man das ja noch insofern erweitern, dass man keine 5 Schleifen (beginnend mit 1, mit 2, mit 3, 4, 5) braucht, sondern das alles in eine Schleife packt.

Ich denke, die Idee sollte klar geworden sein

//edit: *ARGH* Wo is der rote Kasten, wenn man ihn braucht?
Julian J. Pracht
  Mit Zitat antworten Zitat
Benutzerbild von Grishnak
Grishnak

Registriert seit: 15. Sep 2005
Ort: Neu-Ulm
111 Beiträge
 
RAD-Studio 2009 Arc
 
#8

Re: Delphi: Kryptographie!

  Alt 19. Sep 2005, 15:18
@Ultimator: HAHA! (frei nach Nelson von den Simpsons!)
Mach' etwas idiotensicher und irgendjemand erfindet einen besseren Idioten!
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:38 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