![]() |
Re: VerschlüsselungsProgramm
Ich muss den Thread noch mal hervor holen, weil ich da jetzt ein kleines Verständnisproblem habe. Bei den Verschlüsselungsalgorithmen ist immer wieder vom Seed die Rede. Was ist das eigentlich, die 'Saat'?
Dann habe ich ![]() Und an welcher Stelle sieht man, dass es eine 2048 Bit tiefe Verschlüsselung ist? Dann zeigt Hagen ![]() Ist es ein Schwachpunkt, wenn ich von den zu verschlüsselnden Daten einen Hash bilde, die Daten verschlüssele und den Hash mit zu den Daten lege, um nach dem Entschlüsseln überprüfen zu können, ob die Daten korrekt entschlüsselt wurden? Ich überlege nämlich, ob ich mit dem RC4 Algorithmus ein einfaches, kleines nonVCL Verschlüsselungsprogramm schreibe. |
Re: VerschlüsselungsProgramm
Zitat:
![]() Das ist eine Delphi Unit von maximov die den RC4 von Hagen kapselt.
Code:
...
[b]procedure [/b]RC4Seed([b]const [/b]Seed: [b]String[/b]); [b]begin [/b] RC4Init(RC4Random, [color=#ff0000][b]Seed[/b][/color]); [b]end[/b]; ... [b]initialization [/b] RC4Seed([color=#00008b]'5C103319-9C6F-4F88-BBDC-752779958047'[/color]); [b]end[/b]. |
Re: VerschlüsselungsProgramm
Schön, den beitrag kenne ich, aber leider wirft ja gerade der Code die Fragen auf. :roll:
|
Re: VerschlüsselungsProgramm
Zitat:
meinst Du Saat oder Salt? |
Re: VerschlüsselungsProgramm
Ich habe den englischen Asudruck Seed der immer wieder auftaucht einfach übersetzt, um schon male inen Hinweis zu bekommen. Das ergab das deutsche Wort Saat. hat mir aber auch nicht viel geholfen.
|
Re: VerschlüsselungsProgramm
Hai,
der Seed ist der Startzahl die verwendet wird wenn eine Folge von Zufallszahlen erzeugt wird. Wenn Du also immer den selben Seed setzt bekommst Du immer die selbe Folge von Zufalszahlen. In Delphi wird dies "umgangen" in dem Du Randomize aufrufst und hierbei der Seed auf eine Zahl gesetzt wird die sich (glaube ich) aus der Systemzeit berechnet. |
Re: VerschlüsselungsProgramm
Das heißt, verwende ich beim ver- und entschlüsseln einen unterschiedlichen Seed, dann werden die Daten nicht korrekt entschlüsselt. Das heißt wiederum, der Seed entspricht dem Passwort oder?
|
Re: VerschlüsselungsProgramm
Zitat:
Aber das Passwort zu verwenden macht eigentich keinen Sinn. Denn wenn dieses geknackt wurde wäre ja auch der Seed bekannt. Bei einer Verschlüsselung verwendest Du ja neben dem Passwort noch einen Salt. Über diesen zusammengesetzten Schlüssel bildest Du dan eine Einweg Hashfunktion und mit Ergebniss verschlüsselst Du die Daten. Der Salt muss dafür natürlich unverschlüsselt in der Datei mit abgelegt werden. Denn Seed (Startwert) den Du benötigst um einen Salt (Zufallswert) erzeugen zu können legst Du in deinem Programm fest (z.B. eine GUID). |
Re: VerschlüsselungsProgramm
Zitat:
Ich habe hier noch einen Text von Hagen in dem er mir das einal erklärt hat. Ich hoffe er hat nichts dagegen wenn ich ihn hier post :oops: Zitat:
|
Re: VerschlüsselungsProgramm
Zitat:
Wie schon in dem gutem altem Turbo Pascal, kannst Du bei den Zufallszahlen auch den Seed setzten. Früher hatte ich mal so verschlüsselt ;-) @Hagen: Bitte nicht hauen ;-) (Ich bin mir ziemlich sicher, das diese Verschlüsselung nicht sicher ist)
Delphi-Quellcode:
Aber in der Hilfe von Delphi steht:
...
procedure TForm1.Button1Click(Sender: TObject); var i: Integer; s: string; begin s := 'Test'; // Verschlüsseln RandSeed := 5; for i := 1 to length(s) do begin s[i] := chr(ord(s[i]) XOR Round(random(255))); end; // Entschlüseln (Copy und Paste (ohne Änderung) von Verschlüsseln) RandSeed := 5; for i := 1 to length(s) do begin s[i] := chr(ord(s[i]) XOR Round(random(255))); end; // string ausgeben (Kontrolle) Caption := s; end; ... Zitat:
Delphi-Quellcode:
function MachWas(s: string; Schluessel: LongInt): string;
var i: Integer; begin RandSeed := Schluessel; for i := 1 to length(s) do begin s[i] := chr(ord(s[i]) XOR Round(random(255))); end; Result := s; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz