Archivlink: javarea.de Forum > Soft- & Hardware Forum > verschlüsselungsprogramm in turbo pascal programmieren
Vollständigen Link anzeigen: javarea.de Forum > Soft- & Hardware Forum > verschlüsselungsprogramm in turbo pascal programmieren

Pages: [1]

geschrieben von 8ig-8en am 02.01.2006 - 17:43
hallo leuts
ich habe in der schule auf bekommen ein programm zu schreiben bei dem man worte verschlüsselt wieder ausgegeben bekommt

mein problem ist hierbei das austauschen von buchstaben gegen andere
ich bekomme das net hin in meinem schädel
hat da wer eine idee oder einen vorschlag wie ich das ganze umsetzen kann?

die art und weise wie das aufgebaut ist ist egal hauptsache es kann verschlüsseln

ich würde das ganze dann gerne auf das atbasch verfahren und cäser schiffre anwenden wem dies etwas sagt dem wäre ich sehr verbunden wenn er mir vielleicht den gesamten code per pm schicken oder hier hineinschreiben könnte

thx im foraus

geschrieben von Klaush am 02.01.2006 - 18:08
Du glaubst doch nicht das wir dir deine Hausaufgaben machen?

Schau dir die Atbasch und Caesar Algorithmen genauer an, dann verstehst du auch wie diese funktionieren. Das Prinzip ist sehr einfach und kann individuell erweitert werden, selbst mit Prüfsummenbildung, wie sie in CDKeys benutzt werden.

Da du gerade Atbasch angesprochen hast, kann ich dir die ROT-13 Verschlüsselung anbieten, die im Prinzip nichts anderes ist als eine Atbasch Verschlüsselung.

Ein Beispiel wie man eine solche Verschlüsselung machen kann, findest du im JS Verzeichnis unter http://javarea.de/index.php3?openca....amp;id=188



geschrieben von 8ig-8en am 02.01.2006 - 18:12
es hat ja keiner gesagt das man mir die machen soll
wäre halt nur zu schön gewesen um wahr zu sein

mein problem besteht darin das ich nicht weis wie ich das angehen soll dass ich die zeichen des wortes gegen andere ersezte und das auch noch im sinne des atbasch verfahrens das kriege ichnicht hin

ich weis das ich dafür eine veriable brauche die die werte annimt nur wie mache ich das??
und das diese variable dann mit den anderen(vorgegeben) abgeglichen wird und dann ausgetauscht wird

udn genau das weis ich nicht zu programmieren

geschrieben von Klaush am 02.01.2006 - 18:30
Zitat
 Original geschrieben von 8ig-8en am 02.01.2006 - 18:12

es hat ja keiner gesagt das man mir die machen soll
wäre halt nur zu schön gewesen um wahr zu sein
(



Indirekt hast du, aber egal.
Zitat
 Original geschrieben von 8ig-8en am 02.01.2006 - 17:43
wem dies etwas sagt dem wäre ich sehr verbunden wenn er mir vielleicht den gesamten code per pm schicken oder hier hineinschreiben könnte


Mach dir doch wenigstens die Mühe und schau dir das JS Beispiel an, dann hast du deine Atbasch, wobei Atbasch den Ersten mit dem Letzten Buchstaben tauscht usw...

Im Beispiel ist es so:
Ist die Eingabe ein C, dann wird die Zeichenkette bis zum Ende berechnet, hier rot markiert.
Die daraus resultierende neue Zeichenkette, wird dann mittels Teilung durch 2 und modularDivision blauer Text der Austauschbuchstabe berechnet und wie im grünen Text ersetzt.

var key = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
pos + key.length / 2) % key.length
codechar = (codechar == codechar.toUpperCase()) ? key.substring(pos, pos + 1) : key.substring(pos, pos + 1).toLowerCase()


geschrieben von Danny am 02.01.2006 - 18:51
Wegen der Cäsarverschlüsslung also

z.B ABC -> BCD sollte dir damit geholfen sein

HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
program caesar;

var
  s:string;
  i,Anzahl:integer;

const
  Buchstabe : Array[1..26] of Char =
    ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
     'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');

begin
  { TODO -oUser -cConsole Main : Hier Code einfügen }

  Anzahl:=1;  {Verschiebung um x Stellen}
  readln(s);  {Zu verschlüsselnder String}

  for i := 1 to Length(s) do
  begin
    if UpCase(s[i]) in ['A'..Buchstabe[26 - Anzahl]] then
    begin
      Inc(s[i], Anzahl);
    end
    else
    begin
      if UpCase(s[i]) in [Buchstabe[27 - Anzahl]..'Z'] then
      begin
        Dec(s[i],26 - Anzahl);

      end;
    end;
  end;
  writeln(s);

end.


Der Code soll nicht zum Abschreiben dienen sondern eher zum verstehen und nachvollziehen

geschrieben von 8ig-8en am 03.01.2006 - 20:43
also ich werde es damit mal probieren
thx erstmal


Powered by: JBB v.2.0.4 Copyright ©2000-2006, www.javarea.de.