AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Kryptologie Projekt in Delphi... HILFE !!!
Thema durchsuchen
Ansicht
Themen-Optionen

Kryptologie Projekt in Delphi... HILFE !!!

Ein Thema von Jacqybaby · begonnen am 21. Mär 2006 · letzter Beitrag vom 23. Mär 2006
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Nikolas
Nikolas

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

Re: Kryptologie Projekt in Delphi... HILFE !!!

  Alt 21. Mär 2006, 21:18
Zitat:
halt normale Transposition (bei der einfach der Geheimtext zeilenweise in eine Tabelle geschrieben wird und die dann spaltenweise wieder ausgegeben wird
Wenn du dieses Verfahren machen willst, schreibs dir einfach mal hin:

Code:
1  2  3  4  5
6  7  8  9  10 
11 12 13 14 15
Wenn du jetzt die erste Spalte runter gehst, begegnen dir die Zahlen 1,6,11 , also Zahlen der Form
a+x*n, wobei a die Nummer deiner Spalte ist (hier 1) x die Nummer der Zeile ist und n die Anzahl der Ziffern pro Zeile (hier 5). (Wobei hier die 1 die Koordinate (1,0) hat.
Also brauchst du sowas wie eine Schleife
Delphi-Quellcode:
str:='';
for a:=1 to 5 do
 for x:=0 to 2 do
 str:= str+klartext[round(a+x*n)];
Ich weiss grad nicht, ob erkannt wird, dass das Produkt aus zwei Integern wieder integer ist, wenn es so ist, kannst du das Round auch weglassen.
Dabei muss noch beachtet werden, dass Strings eigentlich bei Null beginnen (str:='123' -> str[0]=1)
dann musst du dir noch Gedanken über einen möglichen Abbruch der Schleife machen, also sowas wie (if a+x*n>high(klartext) oder so.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#12

Re: Kryptologie Projekt in Delphi... HILFE !!!

  Alt 21. Mär 2006, 21:20
Wie soll eine Kommazahl rauskommen, wenn ich zwei Ganzzahlen multipliziere?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

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

Re: Kryptologie Projekt in Delphi... HILFE !!!

  Alt 22. Mär 2006, 12:38
Zitat von Luckie:
Wie soll eine Kommazahl rauskommen, wenn ich zwei Ganzzahlen multipliziere?
Ich habe nicht geschrieben, dass ich nicht weiss, ob der Körper der natürlichen Zahlen bezüglich der gewöhnlichen Muliplikation abgeschlossen ist, sondern, dass ich nicht weiss, ob Delphi erkennt, dass das Ergebniss dieser speziellen Multiplikation eine natürliche Zahl ist.

So und jetzt weiss ich es genau: Delphi erkennt es, das round ist somit nicht notwendig.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Jacqybaby

Registriert seit: 21. Nov 2005
25 Beiträge
 
#14

Re: Kryptologie Projekt in Delphi... HILFE !!!

  Alt 22. Mär 2006, 12:43
Ich versuche seit gestern krampfhaft diesen Transpositionsverfahren hin zu bekommen. Aber irgendwie will es nicht funktionieren. Also meine benutzer oberfläche sieht so aus:

http://www.jacqyzone.de/jshome/bilder/delphi_krypto.jpg

Wenn ich jetzt einen Text eingebe soll der zeilenweise in die Listbox eingetragen werden,d.h. wenn der Benutzer bei der schluesseleingabe 5 eingibt sollen die Zeilen mit max 5 Zeichenbelegt sein. Wenn ich dann auf verschlüsseln klicke soll der Klartext spaltenweise in die Listbox des Geheimtextes eingetragen werden, so dass eine geheime Nachricht entsteht. Wie Realisiere ich das ? Wenn ihr etwas anders gestalten würdet um es nicht so umständlich zu machen, gebt mir bitte Anregungen.

MFG Jacqybaby
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#15

Re: Kryptologie Projekt in Delphi... HILFE !!!

  Alt 22. Mär 2006, 13:57
Schlüssellänge 5

wenn Dein Klartext jetzt
so ausschaut:

diesisteinBeispiel

d i e s i
s t e i n
B e i s p
i e l * *

wird daraus

dsBiiteeeeilsis*inp*

das ist Dein verschlüsselter Text
o[1],o[6],o[12],o[18],o[2],o[7]....

Delphi-Quellcode:
for i:=1 to length(klartext) DIV schluessellaenge DO
  for j:=i-1 to schluessellaenge
   begin
    VText:=VText+klartext[(j*schluessellaenge)+1]
   end;
Das ist nicht getestet, aber im Prinzip sollte es so funktionieren.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Jacqybaby

Registriert seit: 21. Nov 2005
25 Beiträge
 
#16

Re: Kryptologie Projekt in Delphi... HILFE !!!

  Alt 22. Mär 2006, 15:12
Aha so weit so gut, jetzt hab ich nur das Problem, dass ich nciht weiss wie ich die Eingabe in ein Edit-Feld so zerteile, dass ich sie als einzelne Buchstaben in die Listbox eingetragen werden damit ich sie dann in dem oben gennanten Algorithmus verabeiten kann.

MFG Jacqybaby
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#17

Re: Kryptologie Projekt in Delphi... HILFE !!!

  Alt 22. Mär 2006, 15:34
mit der Listbox stelle ich mir das auch etwas schwieriger vor.
Einfacher geht es denke ich mit einem TMemo.

In dem Klartextfenster nach dem die Anzahl der Zeichen eingetragen wurden
die der Schüsselänge entspricht eine neue Zeile hinzufügen
und dort dann wieder die gewünschte Anzahl an Zeichen eintragen....

Zum Umwandeln kannst Du dir dann entweder den Klartext als ein String
lassen, quasi so wie er eingeben wurde oder
Du machst die Umwandlung über die Zeilen und Spalten des Memos

Vtext:=Vtext+memo(zeile1,zeichen1)
vtext:=Vtext+memo(zeile2,zeichen1)
...

vtext:=vtext+memo(zeilex,zeicheny)

Das natürlich in einer Schleife.
memo beinhaltet die Anzahl der Zeilen als propertie

Der Rest ist dann noch ein wenig basteln.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Jacqybaby

Registriert seit: 21. Nov 2005
25 Beiträge
 
#18

Re: Kryptologie Projekt in Delphi... HILFE !!!

  Alt 22. Mär 2006, 15:48
wofür steht

"Vtext" ?

was ist "propertie" ?

so weit bin ich jetzt was die Eingabe in das Memo-Feld betrifft:

Delphi-Quellcode:
procedure TForm1.klartexteingabeClick(Sender: TObject);
begin
s:=strtoint(schluessel.text);

for i:=1 to s do
begin
memo3.Lines[1]:=
end;
Mein Problem ist nach wie vor das Zerteilen des Editfeldes in einzelne Buchstaben, die dann nacheinander in eine Zeile geschrieben werden, die der Länge des Schlüssels entspricht.

So ich hab noch nen bisschen weiter gesucht aber hier bin ich ratlos:

Delphi-Quellcode:
procedure TForm1.klartexteingabeClick(Sender: TObject);
var i,j:integer;
begin
s:=strtoint(schluessel.text);
l:=length(edit3.Text);
klartext:=edit3.Text;
for i:=1 to s do
  for j:=0 to l Do
begin
memo3.Lines.Add[i]:=klartext[i];
end;
end;
Es wird nichts in das Memo-Feld geschrieben, warum nicht ?

MFG Jacqybaby
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#19

Re: Kryptologie Projekt in Delphi... HILFE !!!

  Alt 22. Mär 2006, 17:44
Delphi-Quellcode:
procedure TForm1.klartexteingabeClick(Sender: TObject);
var
  i:integer;
  text_dummy:string;

begin
  // memo löschen
  memo3.text:='';

  // Schlüssellänge
  s:=strtoint(schluessel.text);
  
  klartext:=edit3.Text;

  // fülle klartext bis die Länge von klartext ein vielfaches von s ist
  while length(klartext) mod s <> 0 do
   klartext:=klartext+' ';

  text_dummy:=''
  //zerlege klartext in zeilen mit s = Anzahl von Zeichen
  for i:=1 to length(klartext) do
    begin
      text_dummy:=text_dummy+klartext[i];
      if i MOD s = 0
        begin
          memo3.lines.add(text_dummy);
          text_dummy:='';
        end;
    end;
end;
so sollte das zerlegen gehen, war doch nicht so schwer - oder?

transponieren sollte dann so gehen
Delphi-Quellcode:
     for spalte:=1 to s do
       begin
         for zeile:=0 to memo3.Lines.Count-1 DO
           begin
             memo2.text:=memo2.text+memo3.lines.strings[zeile][spalte];
           end;
       end;
auch nicht so schwer, oder?


Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Jacqybaby

Registriert seit: 21. Nov 2005
25 Beiträge
 
#20

Re: Kryptologie Projekt in Delphi... HILFE !!!

  Alt 22. Mär 2006, 19:15
Zitat von Klaus01:
Schlüssellänge 5

Delphi-Quellcode:
for i:=1 to length(klartext) DIV schluessellaenge DO
  for j:=i-1 to schluessellaenge
   begin
    VText:=VText+klartext[(j*schluessellaenge)+1]
   end;
hab es folgendermaßen versucht einzu bauen:

Delphi-Quellcode:
procedure TForm1.verschluesselnClick(Sender: TObject);
var vtext:string;
    i,j,s:integer;
begin
klartext:=memo3.Text;
s:=strtoint(schluessel.text);
vtext:='';

for i:=1 to length(klartext) DIV s{chluessellaenge} DO
  for j:=i-1 to length(klartext) do
   begin
    vtext:=vtext+klartext[(j*s{chluessellaenge})+1];
    memo4.lines.add(vtext);
    end;
end;
aber ausgegeben wird mir das wenn ich geheimtext eingebe:

http://www.jacqyzone.de/jshome/bilder/krypto_fehler.jpg

Ich hab schon vieles versucht aber irgendwie klappt das nicht. Außerdem soll der Geheimtext in einer Zeile(mit max. 29 Zeichen) ausgegeben werden.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 11:39 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