Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TFileStream ganz,ganz,ganz einfach Verschlüsseln (https://www.delphipraxis.net/10345-tfilestream-ganz-ganz-ganz-einfach-verschluesseln.html)

Die Muhkuh 16. Okt 2003 14:43


TFileStream ganz,ganz,ganz einfach Verschlüsseln
 
Wie kann ich einen TFileStream den ich (Siehe Thread: TFileStream öffnen und lesen Link) erzeuge ganz eifach zu verschlüsseln?


Edit: *ganzunauffällignachobenschieb* :angle: :wink:

[edit=sakura]Jetzt fang nicht an nach weniger als 90 Minuten zu schieben. Frühestens morgen ;-) Mfg, sakura[/edit]

Die Muhkuh 16. Okt 2003 15:32

Re: TFileStream ganz,ganz,ganz einfach Verschlüsseln
 
Zitat:

Jetzt fang nicht an nach weniger als 90 Minuten zu schieben. Frühestens morgen Mfg, sakura
Oho was sind bei dir 90 Minuten? bis Morgen sagen wir um 6 wären grade mal 930 Min!


Aber egal zurück zum Thema:

Meine Frage sthet immer noch!




*schieb :-D *

negaH 16. Okt 2003 15:37

Re: TFileStream ganz,ganz,ganz einfach Verschlüsseln
 
Delphi-Quellcode:
procedure CryptStream(Stream: TStream; Key: Cardinal);
var
  Buffer: array[0..511] of Byte;
  Bytes,I,Position: Integer;
begin
  RandSeed := Key;
  Position := Stream.Position;
  repeat
    Bytes := Stream.Read(Buffer, SizeOf(Buffer));
    for I := 0 to Bytes -1 do
      Buffer[I] := Buffer[I] xor Random(256);
    Stream.Position := Position;
    Stream.Write(Buffer, Bytes);
    Inc(Position, Bytes);
  until Bytes = 0;
end;
Das ist definitiv eine einfache Verschlüsselung die fast genauso unsicher ist wie überhaupt nicht zu verschlüsseln. Aber das ist was du wolltest.

Gruß Hagen

Die Muhkuh 16. Okt 2003 16:48

Re: TFileStream ganz,ganz,ganz einfach Verschlüsseln
 
und beim Entschlüsseln Stream.Read statt Stream.Write!


Zitat:

Das ist definitiv eine einfache Verschlüsselung die fast genauso unsicher ist wie überhaupt nicht zu verschlüsseln. Aber das ist was du wolltest.
Na ich glaub ich kann hier woll keiner fragen ob er mir ne vernünfitige erschlüsselung schreibt bzw. nen gescheiten Algorythmus!


Aber wenn du lust und zeit hast kannst du's gerne machen :roll: Schick mir ne PN! Dann schick ich dir das Prog!

negaH 16. Okt 2003 18:32

Re: TFileStream ganz,ganz,ganz einfach Verschlüsseln
 
Zitat:

und beim Entschlüsseln Stream.Read statt Stream.Write!
Nein. Die obige Methode ist eine Stromverschlüsselung und wird deshalb zur Verschlüsselung und zur Entschlüsselung benutzt. D.h. wird mit CryptStream() ein Stream zweimalig verschlüsselt so wurde der Stream wieder entschlüsselt. Vorausgestzt gleicher Key wurde benutzt.

Zitat:

Na ich glaub ich kann hier woll keiner fragen ob er mir ne vernünfitige erschlüsselung schreibt bzw. nen gescheiten Algorythmus!
Suchen würde ausreichen. Im WEB gibt es genügend fertiger Delphi Sourcen als Freeware die starke Verschlüsselungen enthalten. Und doch, du kannst mich fragen ob ich solche Algorithmen programmiere, denn das ist eines meiner Hobbies. Suche im WEB nach dem DEC=Delphi Encryption Compendium, oder DCP Crypt usw. usw.

Falls du warten kannst bis etwa zum Wochenende dann ist auch mein neues DEC fertig gestellt.

Gruß Hagen

X-Dragon 20. Okt 2003 13:00

Re: TFileStream ganz,ganz,ganz einfach Verschlüsseln
 
In der Delphi-Filfe steht aber extra:
Zitat:

Hinweis

Die Implementierung der Funktion Random kann sich bei einer anderen Compiler-Version ändern. Sie sollten Random daher nicht für Verschlüsselungen oder andere Einsatzbereiche verwenden, in denen reproduzierbare Pseudozufallszahlen benötigt werden.
:angle2:

negaH 20. Okt 2003 15:46

Re: TFileStream ganz,ganz,ganz einfach Verschlüsseln
 
Zitat:

Hinweis

Die Implementierung der Funktion Random kann sich bei einer anderen Compiler-Version ändern. Sie sollten Random daher nicht für Verschlüsselungen oder andere Einsatzbereiche verwenden, in denen reproduzierbare Pseudozufallszahlen benötigt werden.
Das stimmt auch. Ich habe aber seit Jahren mit Borland Pascal 4.0 bis Delphi 7.0 gearbeitet und Random() ist in allen Versionen kompatibel. Man kann auch den Source von Random() kopieren und eine eigene Funktion daraus basteln, wenn man 100%'tig sicher sein will.

Gruß Hagen

mytar 25. Okt 2004 14:08

Re: TFileStream ganz,ganz,ganz einfach Verschlüsseln
 
Wie würde man das machen, wenn man Buffer und Count als Parameter hat?

Delphi-Quellcode:
procedure CryptStream(var Buffer; Count: Lonmgint);
var
  Buffer: array[0..511] of Byte;
  Bytes,I,Position: Integer;
begin
  RandSeed := Key;
  Position := Stream.Position;
  repeat
    Bytes := Stream.Read(Buffer, SizeOf(Buffer));
    for I := 0 to Bytes -1 do
      Buffer[I] := Buffer[I] xor Random(256);
    Stream.Position := Position;
    Stream.Write(Buffer, Bytes);
    Inc(Position, Bytes);
  until Bytes = 0;
end;
Wie ist das mit Buffer zu handhaben?

Danke!

negaH 25. Okt 2004 16:00

Re: TFileStream ganz,ganz,ganz einfach Verschlüsseln
 
Ja das geht auch, dann aber so

Delphi-Quellcode:
procedure CryptBuffer(var Buffer; Count: Integer; Key: Cardinal);
var
  I: Integer;
begin
  RandSeed := Key;
  for I := 0 to Count -1 do
    TByteArray(Buffer)[I] := TByteArray(Buffer)[I] xor Random(256);
end;
Wie gesagt: es ist unsicher, weil Random() selber als Schlüsselstrom unsicher ist, und weil RandSeed := Key == Cardinal == 2^32 viel zu wenig resitent gegen Brute Force Angriffe ist.

Gruß Hagen

TeronG 25. Okt 2004 16:06

Re: TFileStream ganz,ganz,ganz einfach Verschlüsseln
 
Zitat:

Zitat von negaH
Falls du warten kannst bis etwa zum Wochenende dann ist auch mein neues DEC fertig gestellt.

Neuer DEC :shock: ?? Ich hoffe mal du postest uns bescheid !! :twisted: .... oh misst OT :oops: sorry


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 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