AGB  ·  Datenschutz  ·  Impressum  







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

Delphi Entschlüsselung

Ein Thema von Master-of-nichts · begonnen am 30. Nov 2006 · letzter Beitrag vom 9. Dez 2006
Antwort Antwort
Seite 1 von 2  1 2      
Master-of-nichts

Registriert seit: 30. Nov 2006
Ort: zuhause
5 Beiträge
 
#1

Delphi Entschlüsselung

  Alt 30. Nov 2006, 14:38
Hallo,

habe eine Frage zu Borland Delphi 6 Enterprise Edition.
Ist ein Schulprojekt und der Lehrer möchte das wir einen Text aus Memo2 über den Schlüssel GOLDENBR
bei der OnClick.Button2 Prozedur in Memo1 einfügen.
Die Klartext-Geheimtext-Tabelle habe ich bereits erstellt.
Könnte mir vielleicht jemand dabei helfen.
Habe absolut keine Ahnung von Delphi.
Hab erfahren das Wir eine Monoalphabetische Verschlüsselung benutzen,was auch immer das sein mag.

Bitte um schnelle Hilfe

Master-of-nichts
  Mit Zitat antworten Zitat
Benutzerbild von Lun
Lun

Registriert seit: 4. Feb 2006
122 Beiträge
 
Delphi 2005 Professional
 
#2

Re: Delphi Entschlüsselung

  Alt 30. Nov 2006, 14:55
Hi ,

habe leider nicht viel Zeit dir etwas dazu zu erklären, aber kann dir etwas geben was dir weiter hilft:

Zitat:
Hab erfahren das Wir eine Monoalphabetische Verschlüsselung benutzen,was auch immer das sein mag.
Dann guck mal
Hier

Und für die Lösung guck dir mal den Code an.
Vielleicht hilft dir das für den moment weiter.

Wenn ich heute abend was zeit habe, guck ich hier nochmal rein.

greetz Lun
  Mit Zitat antworten Zitat
Benutzerbild von Catbytes
Catbytes

Registriert seit: 7. Sep 2002
Ort: Heckendalheim
353 Beiträge
 
Delphi XE5 Enterprise
 
#3

Re: Delphi Entschlüsselung

  Alt 30. Nov 2006, 14:56
Zitat von Master-of-nichts:
Könnte mir vielleicht jemand dabei helfen.
Bei was genau helfen?

Zitat von Master-of-nichts:
Hab erfahren das Wir eine Monoalphabetische Verschlüsselung benutzen,was auch immer das sein mag.
Hmmmmm - 10 Sekunden Google: Guckst du Wiki

Edit: Huch - der war schneller
Catbytes
  Mit Zitat antworten Zitat
Master-of-nichts

Registriert seit: 30. Nov 2006
Ort: zuhause
5 Beiträge
 
#4

Re: Delphi Entschlüsselung

  Alt 5. Dez 2006, 12:23
Hey Leute...

komm damit irgendwie nicht weiter...kann mir jemand vielleicht ein Beispiel ins Netz stellen.

Danke schonmal im Vorraus.

Master-of-nichts
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Delphi Entschlüsselung

  Alt 5. Dez 2006, 12:28
@Master-Of-Nichts: Würdest Du eventuell den Tipps und Links folgen? Weiterhin wäre es wirklich sehr freundlich, wenn Du zumindest im Ansatz zu einer Lösung beisteuern würdest. Die von Dir verfolgte Strategie, einfach gar nichts zu machen und uns die ganze Arbeit erledigen zu lassen, fruchtet vielleicht bei Dir zu Hause...


aber hier nicht.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Master-of-nichts

Registriert seit: 30. Nov 2006
Ort: zuhause
5 Beiträge
 
#6

Re: Delphi Entschlüsselung

  Alt 7. Dez 2006, 13:29
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Grids, StdCtrls;

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Memo1: TMemo;
    Memo2: TMemo;
    Edit1: TEdit;
    Button5: TButton;
    Button6: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}
var n,k,sch_wort_lang: integer;
    sch_wort,buchstabe,klartext,geheimtext : string;

procedure TForm1.FormCreate(Sender: TObject);
begin
stringgrid1.Cells[0,0]:='Klartextalphabet';
stringgrid1.cells[1,0]:='Geheimtextalphabet';
stringgrid1.Cells[0,1]:='A';
stringgrid1.Cells[0,2]:='B';
stringgrid1.cells[0,3]:='C';
stringgrid1.Cells[0,4]:='D';
stringgrid1.cells[0,5]:='E';
stringgrid1.Cells[0,6]:='F';
stringgrid1.Cells[0,7]:='G';
stringgrid1.Cells[0,8]:='H';
stringgrid1.Cells[0,9]:='I';
stringgrid1.cells[0,10]:='J';
stringgrid1.Cells[0,11]:='K';
stringgrid1.Cells[0,12]:='L';
stringgrid1.Cells[0,13]:='M';
stringgrid1.Cells[0,14]:='N';
stringgrid1.Cells[0,15]:='O';
stringgrid1.Cells[0,16]:='P';
stringgrid1.Cells[0,17]:='Q';
stringgrid1.Cells[0,18]:='R';
stringgrid1.Cells[0,19]:='S';
stringgrid1.Cells[0,20]:='T';
stringgrid1.Cells[0,21]:='U';
stringgrid1.Cells[0,22]:='V';
stringgrid1.Cells[0,23]:='W';
stringgrid1.Cells[0,24]:='X';
stringgrid1.Cells[0,25]:='Y';
stringgrid1.Cells[0,26]:='Z';

stringgrid1.Cells[1,1]:='G';
stringgrid1.Cells[1,2]:='O';
stringgrid1.cells[1,3]:='L';
stringgrid1.Cells[1,4]:='D';
stringgrid1.cells[1,5]:='E';
stringgrid1.Cells[1,6]:='N';
stringgrid1.Cells[1,7]:='B';
stringgrid1.Cells[1,8]:='R';
stringgrid1.Cells[1,9]:='U';
stringgrid1.cells[1,10]:='F';
stringgrid1.Cells[1,11]:='S';
stringgrid1.Cells[1,12]:='K';
stringgrid1.Cells[1,13]:='A';
stringgrid1.Cells[1,14]:='C';
stringgrid1.Cells[1,15]:='H';
stringgrid1.Cells[1,16]:='I';
stringgrid1.Cells[1,17]:='J';
stringgrid1.Cells[1,18]:='M';
stringgrid1.Cells[1,19]:='P';
stringgrid1.Cells[1,20]:='Q';
stringgrid1.Cells[1,21]:='U';
stringgrid1.Cells[1,22]:='V';
stringgrid1.Cells[1,23]:='W';
stringgrid1.Cells[1,24]:='X';
stringgrid1.Cells[1,25]:='Y';
stringgrid1.Cells[1,26]:='Z';
for n:=1 to 26 do stringgrid1.cells[0,n]:= chr(n+64);
end;

procedure TForm1.Button3Click(Sender: TObject); //Schlüssel erzeugen
begin
//
end;

procedure TForm1.Button4Click(Sender: TObject); //vereinfachen
begin
sch_wort := edit1.text;
sch_wort_lang := length(sch_wort); //Grossbuchstaben
for n:=1 to sch_wort_lang do sch_wort[n]:= upcase(sch_wort[n]);
n:=0;
repeat //Sonderzeichen raus
      n:=n+1;
      if not(sch_wort[n] in['A'..'Z']) then
        begin
        sch_wort := copy(sch_wort,1,n-1)+ copy(sch_wort,n+1,99);
        n:=n-1;
        sch_wort_lang := sch_wort_lang -1;
        end;
      until n>sch_wort_lang;
n:=0;
repeat //Doubletten raus
      n:=n+1;
      buchstabe := sch_wort[n];
      for k:=n+1 to sch_wort_lang do
          if sch_wort[k]=buchstabe then
             sch_wort := copy(sch_wort,1,k-1)+ copy(sch_wort,k+1,99);
      until n>sch_wort_lang;
edit1.text := sch_wort;
end;

procedure TForm1.Button1Click(Sender: TObject); //verschlüsseln
begin
//
end;





procedure TForm1.Button2Click(Sender: TObject); //entschlüsseln
begin

end;

end.

end.
Master-of-nichts

[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]
  Mit Zitat antworten Zitat
Klaus01

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

Re: Delphi Entschlüsselung

  Alt 7. Dez 2006, 13:42
Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject); //vereinfachen
begin
  sch_wort := edit1.text;
  sch_wort_lang := length(sch_wort);
  //Grossbuchstaben
  //for n:=1 to sch_wort_lang do
  // sch_wort[n]:= upcase(sch_wort[n]);
   sch_wort:=UpperCase(sch_wort);
   n:=0;
repeat //Sonderzeichen raus
  n:=n+1;
  if not(sch_wort[n] in['A'..'Z']) then
    begin
      sch_wort := copy(sch_wort,1,n-1)+ copy(sch_wort,n+1,99);
      n:=n-1;
      sch_wort_lang := sch_wort_lang -1;
    end;
until n > sch_wort_lang;
n:=0;
repeat //Doubletten raus
  n:=n+1;
  buchstabe := sch_wort[n];
  for k:=n+1 to sch_wort_lang do
    if sch_wort[k]=buchstabe then
      sch_wort := copy(sch_wort,1,k-1)+ copy(sch_wort,k+1,99);
until n>sch_wort_lang;

edit1.text := sch_wort;

end;
Die Position eines Buchstaben des Klartextes im StringGrid ermittelst Du so:
position:= ord(KlarText[i]) - ord('A') +1 Mit der Position kannst Du dann den Klartextbuchstaben mit dem Geheimbuchstaben austauschen.

P.S. Dein Code ist schwer zu lesen, Kommentierungen und Erklärungen und Einrückungen würden
den Code lesbarer machen, auch für Dich.

Falls Ihr auf die gleiche Schule geht, könnt Ihr Euch ja zusammentun. -> http://www.delphipraxis.net/internal...878&highlight=

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Master-of-nichts

Registriert seit: 30. Nov 2006
Ort: zuhause
5 Beiträge
 
#8

Re: Delphi Entschlüsselung

  Alt 7. Dez 2006, 14:01
Hallo...

danke nochmals für die Hilfe...irgendwie funktioniert es aber nicht...weiß net was ich mit

position:= ord(KlarText[i] - ord('A') +1

anstellen soll...

der Code ist Goldenberg...

vielleicht hat jemand ein Beispiel dafür, wäre echt nett von euch..

Master-of-nichts
  Mit Zitat antworten Zitat
Klaus01

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

Re: Delphi Entschlüsselung

  Alt 7. Dez 2006, 14:15
Den Link hast Du dir nicht angeschaut oder?

GOLDENBERG ist der Schlüssel
G ist an der 7. Stelle des Alphabets ( A=0, B=1...)
O ist an der 15. Stelle
usw.

Dein normaler Text heißt z.B. EINBEISPIEL

Dann mußt Du das E mit dem Bchstaben vertauschen der 7 Stellen weiter im Alphabet steht

hier steht E im Alphabet: ord('E') - ord('A') = 4
das is die Position von G: ord('G') - ord('A') = 6
der neue Buchstabe steht an Position 4 +6 = 10 und ist chr(ord('E')+10)

Delphi-Quellcode:
function Verschluesseln(pPlaintext, pSchluessel: String):String;
var i, j: integer;
    lBuchstabe: char;
    zPlainText:String;
    zSchluessel:String;
begin
  zPlaintext:=lowercase(pPlaintext);
  zSchluessel:=lowerCase(pSchluessel);
  result:='';
  for i:=1 to length(zPlaintext) do
    begin
      j:=ord(zSchluessel[i])- ord('a'); // Anzahl der Verschiebungen ermitteln

      if ord(zPlainText[i])+j > (ord('a') + 26) then // ist der verschobene Buchstabe > 'z'
        lBuchstabe:=chr(ord(ZPlainText[i])+j-26)
      else
        lBuchstabe:=chr((ord(ZPlainText[i])+j));
      result:=result+lBuchstabe;
    end;
end;

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Klaus01

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

Re: Delphi Entschlüsselung

  Alt 7. Dez 2006, 14:33
Nun, der obere Beitrag beschreibt die Vignere Verschlüsselung.
Wie ich eben erst gelesen habe, suchst DU etwas für die Caesar Verschlüsselung.

Die ist noch simpler.

KlartextAlpabet ABCDEFGHIJKLMNOP
Schlüsselalphabet GOLDBERG

Dann wird wenn im Klartext ein A vorkommt dieses durch ein G ersetzt.

Die Position des Buchstaben Alpabet im Klartext- und Schlüsselalphabet
ist die gleiche.

Also: Position des Buchstaben ermitteln : ord(KlarText[i]) - ord('A'] + 1
Geheimtextbuchstabe: Schlüsselalphabet[ord(KlarText[i]) - ord('A'] + 1]

Mit Memo1.text[i] kannst Du auf die einzelnen Zeichen des Memo Zugreifen.
Während der Verschlüsselung am besten alles in ein String schreiben und den
String dann mit Memo2.lines.add(DeinString) dem Ausgangsmemo hinzufügen.

Mit
Delphi-Quellcode:
for i:=1 to length(Memo1.Text) do
  ...
kannst Du das ganze Memo1 durchlaufen.

Und ein wenig solltest Du auch selber machen.

Grüße
Klaus
Klaus
  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 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