Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi "Verschlüsselung" (https://www.delphipraxis.net/182989-verschluesselung.html)

VkPenguin 4. Dez 2014 09:16

AW: "Verschlüsselung"
 
Hm.
@Himitsu:
Also ich habe "Embarcadero® RAD Studio XE7 Version 21.0.17017.3725".
In der "ver.inc" taucht folgendes auf:

Delphi-Quellcode:
{$IFDEF VER150} {Borland Delphi 7.0 }
  {$DEFINE VER_D7}
  {$DEFINE VER_D7H}
  {$DEFINE VER_D6H}
  {$DEFINE VER_D5H}
  {$DEFINE VER_D4H}
  {$DEFINE VER_D3H}
  {$DEFINE VER_D2H}
  {$DEFINE VER_D1H}
{$ENDIF}
Das müsste doch eigentlich Funktionieren, oder sehe ich das falsch?

@Jens/Sherlock: Ich werde mir auch eure Ideen mal ansehen und ausprobieren, vielen Dank schonmal! :)

mjustin 4. Dez 2014 09:24

AW: "Verschlüsselung"
 
Zitat:

Zitat von VkPenguin (Beitrag 1282204)
Hm.

Also ich habe "Embarcadero® RAD Studio XE7 Version 21.0.17017.3725".
In der "ver.inc" taucht folgendes auf:

Delphi-Quellcode:
{$IFDEF VER150} {Borland Delphi 7.0 }
  {$DEFINE VER_D7}
  {$DEFINE VER_D7H}
  {$DEFINE VER_D6H}
  {$DEFINE VER_D5H}
  {$DEFINE VER_D4H}
  {$DEFINE VER_D3H}
  {$DEFINE VER_D2H}
  {$DEFINE VER_D1H}
{$ENDIF}
Das müsste doch eigentlich Funktionieren, oder sehe ich das falsch?

Mit Borland Delphi 7.0 würde es funktionieren. Aber Delphi 7.0 ist ein Programm aus dem vorigen Jahrzehnt, im Gegensatz zu XE7 :)

himitsu 4. Dez 2014 10:42

AW: "Verschlüsselung"
 
Delphi XE7 = VER280 = CompilerVersion 28.0 / IDE-Version 21.0
Delphi 7 = VER150 = CompilerVersion 15.0 / IDE-Version 7.0
(Drum gibt es auch kein Windows 9, sondern man springt gleich zu Windows 10 ... Win9x)

Wenn nur mit diesen doofen VERxxx-Defines gearbeitet wird, dann muß man in diesen INCs explizit jede Delphi-Version implementieren, vorallem wenn man das falschrum auswertet (was zu oft gemacht wird)
Falschrum: Funktionen nur aktivieren
Richtigrum: Funktionen bei bekannten Delphi deaktivieren und wenn Delphi unbekannt, dann von neuem Delphi ausgehn

Oder man benutzt endlich mal die CompilerVersion-Konstante, welche seit Delphi 6 existiert :wall:

Oder noch besser, man prüft auf Features und nicht auf Versionen.
z.B. UNICODE-Define oder SizeOf(Char) statt Delphi2009+
Es gibt nicht umsonst für's $IF die Funktionen Declared und Defined. :roll:

VkPenguin 5. Dez 2014 10:02

AW: "Verschlüsselung"
 
Aber was soll ich denn nun tun? Ich kann doch nicht einfach die Version in die .inc aufnehmen, oder?

himitsu 5. Dez 2014 10:09

AW: "Verschlüsselung"
 
Warum nicht?

VkPenguin 5. Dez 2014 18:38

AW: "Verschlüsselung"
 
Guten Abend,
es tut mir wirklich leid, dass ich mich scheinbar so blöd anstelle, aber ich habe vorhin alle drei von euch vorgeschlagenen Möglichkeiten ausprobiert und komme bei keiner ein Stück weiter. Es muss doch irgendwo eine Art Tutorial für ein einfaches Verschlüsseln von Dateien geben.

Mir ist klar, dass es sehr aufwendig werden kann, wenn man eine wirklich sichere Technik braucht, aber ich will ja nur, dass nicht jeder "Hans" gleich drauf zugreifen kann. Es muss ja keinem großen Hackerangriff standhalten...

Naja. Ich werde mich nochmal auf die Suche machen und schauen, ob ich irgendwo etwas finde, womit ich klarkomme, sonst versuche ich eben, mir selbst etwas zu schreiben. Falls doch noch jemand von euch eine Idee hat wäre ich trotzdem sehr dankbar.

*Edit* Könnte ich nicht auch mit BlockWrite/BlockRead die Datei Stückweise einlesen, diese anhand eines Verfahrens vertauschen und dann speichern? Bevor die Datei mithilfe des Programms zurücksortiert wird wäre sie dann unbrauchbar. Ist selbstverständlich nicht die sicherste Variante, aber das muss es ja wie gesagt auch nicht sein. Meint ihr, das funktioniert?

OlafSt 5. Dez 2014 21:19

AW: "Verschlüsselung"
 
Freund der Sonne,

du wirst doch wohl in der Lage sein,

- eine Datei mit Blockread zu lesen
- die einzelnen Blöcke mit einem simplen XOR zu Verschlüsseln
- den Block in die Zieldatei zu schreiben.

himitsu 6. Dez 2014 02:07

AW: "Verschlüsselung"
 
In nahezu jedem Delphi-Grundlagen-Tutorial gibt es doch irgendwo ein XOR-Beispiel.

Und dann zeigt Google auch noch massig Links zu sowas.
http://www.delphipraxis.net/19340-ist-xor.html
http://www.entwickler-ecke.de/topic_...n_13611,0.html
http://www.angelfire.com/mo3/pengwin/devtut1.html

Man muß nur beachten, daß irgendwie viele Delphi-Beispiele im Internet noch aus Vor-Delphi2009-Zeiten stammen und man somit mit Unicode aufpassen muß,
aber über TEncoding (nach TBytes umwandeln) oder durch Umwandlung in z.B. UTF8 lassen sich all diese Beispiele noch problemlos verwenden.

Außerdem gibt es tausendeVerschlüsselungs-Bibliotheken, welche man ebenfalls verwenden könnte.

Mavarik 8. Dez 2014 14:16

AW: "Verschlüsselung"
 
Zitat:

Zitat von VkPenguin (Beitrag 1282410)
*Edit* Könnte ich nicht auch mit BlockWrite/BlockRead die Datei Stückweise einlesen, diese anhand eines Verfahrens vertauschen und dann speichern? Bevor die Datei mithilfe des Programms zurücksortiert wird wäre sie dann unbrauchbar. Ist selbstverständlich nicht die sicherste Variante, aber das muss es ja wie gesagt auch nicht sein. Meint ihr, das funktioniert?

OMG... Was hat den der Papa schon in #3 vorgeschlagen?

Echt jetzt ein Beispiel? Na gut, aber nicht vollständig!

Delphi-Quellcode:
var
  A : TBytes;
  W : word;   // Nur für kleine Dateien :-)
...
begin
  ....
  W := Filesize...
  Setlength(A,W+2);
  ....

  Blockread(F,A[2],W); // oder Stream?

  Move(W,a[0],2); // Wofür wohl Stichwort mitten im "Stream"?

  for i:=2 to high(A) do
    begin
      A[i] := A[i] XOR $FF;            // Version 1.0 
      A[i] := A[i] XOR byte(I AND $FF); // Version 1.5 
    end;
  ...
  Blockwrite(F,A[0],W+2); // oder Stream?
  ...
Mavarik

VkPenguin 9. Dez 2014 15:02

AW: "Verschlüsselung"
 
@OlafSt: Nein, bin ich leider nicht, sonst würde ich ja nicht danach fragen. Was du gesagt hast, habe ich ja oben bereits angedeutet, aber da ich mit keinem dieser Begriffe bisher gearbeitet habe fehlt mir die Erfahrung, um die "Idee" auch tatsächlich umzusetzt. Wie gesagt, ich meine es ernst, wenn ich sage, es tut mir Leid, dass ich mich so blöd anstelle. Aber es ist eben mein "erstes Mal". :-)

@Himitsu: Vielen Dank für die Links, die habe ich mir mal angesehen. Jetzt weiß ich wenigstens, wie man XOR zu verstehen hat. Das genauere Tutorial werde ich mir später mal ansehen, erstmal muss ich mit Blockread/write und dem verschieben an sich klarkommen.

@Mavarik: Vielen Dank für Dein Beispiel. Ich habe Deinen Beitrag duchaus gesehen, daher auch meine Idee, aber entschuldige bitte, dass ich es scheinbar so formuliert habe, dass Du Dich übergangen gefühlt hast.

Dazu ein paar Fragen:
1. Ich habe zunächst versucht, "F" zu initialisieren:
Delphi-Quellcode:
AssignFile(F,OpenDialog1.FileName)
  ReWrite(F);
Daraufhin bekomme ich bei
Delphi-Quellcode:
 W := Filesize(F);
jedoch direkt einen Fehler (E/A Fehler 103). Ich habe mal nach dem Problem gesucht und es daraufhin mal mit
Delphi-Quellcode:
 W := System.Filesize(F);
versucht um sicherzugeben, dass es die richtige Prozedur ist, aber daran liegt es zumindest wohl schonmal nicht. Woran liegt das denn? Die Datei ist nicht schreibgeschützt oder ähnliches.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:21 Uhr.
Seite 2 von 3     12 3      

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-2025 by Thomas Breitkreuz