Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - xor verschlüsselung
Die Brotmafia - Do 23.02.06 21:59
Titel: xor verschlüsselung
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:
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 public 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
raziel: Code- durch Delphi-Tags ersetzt
MrFox - 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.
Die Brotmafia - 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!
MrFox - Do 23.02.06 22:33
Du brauchst nur exakt die gleiche Funktion nochmal über die Datei laufen lassen.
Die Brotmafia - 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!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!