Autor Beitrag
Die Brotmafia
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110

Win XP Suse Linux 9.3
Delphi 7 Enterprise, Delphi 2005
BeitragVerfasst: Do 23.02.06 21:59 
Ja, ich weis, es gibt jede Menge themen dazu und ich habe auch schon die Suchfunktion benutzt.

Bin aber nicht wirklich weitergekommen.

Ich versuche gerade ein Programm zu coden was mir Dateien mit Xor Verschlüsseln kann, und, wenn ich will, mit einem auch gecodeten Decrypter wieder entschlüsseln kann.

Momentan dachte ich man kann das so realisieren, dass ich die JclStrings einbinde und dann die betreffende datei, z.B. 'test.txt' mit FiletoString zu nem String mache, diesen String dann mit Xor verschlüssle und dann abspeichere, beim decrypten dann mit FiletoString den String wieder laden, mit Xor decrypten und dann wieder mit StringToFile als Datei abspeichern.

Soweit bin ich bis jetzt:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    RadioButton1: TRadioButton;
    OpenDialog1: TOpenDialog;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure OpenDialog1SelectionChange(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  datei: string;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
 OpenDialog1.Execute;
end;

procedure TForm1.OpenDialog1SelectionChange(Sender: TObject);
begin
 datei:=opendialog1.FileName;
end;

procedure TForm1.Button2Click(Sender: TObject);
var crypted: string;
    i: integer;
    StringList: TStringList;
begin
 StringList:=TStringList.Create;
 crypted:=FiletoString(Datei);
  try
   For i:=0 to length(crypted) do
    crypted[i]:=char(byte(crypted[i]) xor 12);
     StringList.Add(crypted);
      finally
       showmessage(StringList.CommaText);
  end;
end;

end.


So, wenn ich das jetzt ausführe kommt immer ne Exception, momentan ist es Acces Violation at Adress blablabla...

Was ist da falsch?

Danke!

Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt
MrFox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 208

WIN 2000 Professional, Ubuntu 5.10
D3 Prof, D7 Pers, D2005 Pers, Java (Eclipse)
BeitragVerfasst: Do 23.02.06 22:19 
Ein String ist immer von 1 bis Length indiziert, du durchläufst die Schleife von 0 bis Length, das ist dein Fehler.

_________________
Das Leben auf der Erde mag zwar teuer sein, aber eine jährliche Rundreise um die Sonne ist gratis mit dabei.
Die Brotmafia Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110

Win XP Suse Linux 9.3
Delphi 7 Enterprise, Delphi 2005
BeitragVerfasst: Do 23.02.06 22:28 
Danke!!

Das funtkioniert jetzt schonmal Prima, kann mir einer nen Tipp geben wie man den String jetzt wieder De-Crypten kann?

Edit: Habs rausgefunden, werd noch n bisschen rumspielen und dann weitere Fragen stellen!


Zuletzt bearbeitet von Die Brotmafia am Do 23.02.06 22:34, insgesamt 1-mal bearbeitet
MrFox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 208

WIN 2000 Professional, Ubuntu 5.10
D3 Prof, D7 Pers, D2005 Pers, Java (Eclipse)
BeitragVerfasst: Do 23.02.06 22:33 
Du brauchst nur exakt die gleiche Funktion nochmal über die Datei laufen lassen.

_________________
Das Leben auf der Erde mag zwar teuer sein, aber eine jährliche Rundreise um die Sonne ist gratis mit dabei.
Die Brotmafia Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110

Win XP Suse Linux 9.3
Delphi 7 Enterprise, Delphi 2005
BeitragVerfasst: Do 23.02.06 22:41 
Hmmm, ich hab da nochmal ne Frage, die ist mir jetzt gekommen:

Ich hätte gerne dass das Programm die gecryptete Datei in sich selbst speichern kann und dann als Resource Datei speichert, die ich dann bei bedarf entcrypten und dann aus dem Programm heraus in ein Verzeichnis "droppen" kann...

Hat da jemand ne Ahnung wie man das anstellen könnte? Das scheint mir zumindest ne recht sichere lösung zu sein, da dann auch niemand direkt auf die gecryptete datei zugreifen kann da diese als Resource datei in einem anderen "versteckt" ist, aber wie mache ich das?

Danke!