Autor Beitrag
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: So 05.07.09 16:09 
Eine Möglichkeit auf die Schnelle.

ausblenden Delphi-Quelltext
1:
2:
3:
const
code = 'ghijklmnopqrstuvwxyzabcdef';
//     'abcdefghijklmnopqrstuvwxyz';


Du arbeitest nicht mit einer Konstante, sondern nimmst eine Variable und addierst dein Kennwort zu einer 26 lange Zeichenkette zusammen (nur aus Kleinbuchstaben). Beispiel:

aus dem Kennwort

"maxundmoritz"

machst du eine Zeichenkette

"maxundmoritzmaxundmoritzma"

und diese benutzt du statt

"ghijklmnopqrstuvwxyzabcdef"

Somit hast du eine Verschlüsselung die abhängig vom Kennwort ist.

Allerdings gehe ich nicht noch tiefer ins Detail, da diese Art der Verschlüsselung sowieso eine Sackgasse ist. Du warst es der mit dem Konzept gekommen ist, wir haben es nur optimiert.

Aber auch wenn du es besser machst, es wird nicht viel besser. Dieses Buchstabentauschen kriegt man schnell berechnet. Also entweder es ist dir egal und dir reicht deine oder eine Xor Verschlüsselung, oder du benutzt einen professionellen Algorithmus.

_________________
Popov
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: So 05.07.09 16:15 
user profile iconPopov hat folgendes geschrieben Zum zitierten Posting springen:
Eine Möglichkeit auf die Schnelle.
aus dem Kennwort

"maxundmoritz"

machst du eine Zeichenkette

"maxundmoritzmaxundmoritzma"

und diese benutzt du statt

"ghijklmnopqrstuvwxyzabcdef"

Somit hast du eine Verschlüsselung die abhängig vom Kennwort ist.


besser:

du nimmst das kennwort zum verschlüsseln:

maxundmoritz

und wenn du damit fertig bist hängst du es nicht einfach nochmal dran, sondern deinen text zum verschlüsseln

maxundmoritzhalloichbinderwalter und so weiter.

damit vermeidest du periodizität.

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Sirke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 208
Erhaltene Danke: 2



BeitragVerfasst: Mo 06.07.09 11:26 
Aus dieser Monoalphabetischen Substitution kann man sehr einfach eine Polyalphabetische Substitution machen, indem man den Wert für die "Verschiebung der Zeichen" nicht Konstant hält, sondern von einem Schlüssel abhängig macht.

Dies kann man sehr leicht realisieren, indem man die selben Anweisungen vom Klartext für den Schlüsel(text) benutzt um die Zeichennummer auszulesen, welche dann als Verschiebungszahl funktioniert.

Bei einem Schlüssel, der die selbe Länge wie der Klartext hat, bekommt man damit eine 100%ige Sicherheit!!! ;-)
(Leider eben auf Kosten der Schlüssellänge)


Anstatt dieser Variante mit einem eben so langen Schlüssel wie Klartext kann man auch auf einen kürzeren Schlüssel setzen, welcher dazu dient einen Schlüsselstrom zu erzeugen. Dazu benötigt man dann einen möglichst guten Zufallsgenerator, welcher mit dem Schlüssel initialisiert wird.
axellang
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: Mo 06.07.09 16:43 
Hallo newbie333,

ich habe Dir ein kleines Projekt (erstellt in D2007) angehängt was eine einfache Verschlüsselung veranschaulicht.

Gruß

Axel
Einloggen, um Attachments anzusehen!
newbie333 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 43



BeitragVerfasst: Di 07.07.09 09:17 
VIELEN VIELEN DANK! :)
Das Forum ist echt Klasse!

Das Programm läuft bei mir aber leider nicht, hab nur Delphi 5 von der Schule bekommen ;)
Danke trotzdem!
axellang
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: Di 07.07.09 14:25 
Hi,

user profile iconnewbie333 hat folgendes geschrieben Zum zitierten Posting springen:

Das Programm läuft bei mir aber leider nicht, hab nur Delphi 5 von der Schule bekommen ;)
Danke trotzdem!


damit es mit Delphi 5 funktioniert musst Du in der Projektdatei "Crypt.dpr"
folgendes auskommentieren oder löschen: "Application.MainFormOnTaskbar := True;".

Außerdem musst Du in der crmain.pas unter uses den Verweis auf die Unit Variants rausnehmen.

Beim laden des Projekts in D5 kommt zwar noch eine Fehlermeldung das Panel1.DesignSize nicht existiert
aber dass kannst Du getrost wegklicken. Wenn Du es wie beschrieben abänderst, lässt sich das Projekt auch unter
D5 kompilieren und ausführen (habe es eben selbst ausprobiert [D5 Enterprise]).

Axel