Einzelnen Beitrag anzeigen

Berlinermauer

Registriert seit: 3. Okt 2007
Ort: 0x0000
213 Beiträge
 
Delphi 7 Personal
 
#1

RC4 Verschlüsslung für Delphi

  Alt 26. Mai 2009, 20:01
Hi Leute,
um den Code meines Programmes zu schützen, wollte ich es gerne RC4 verschlüsseln.

Zum Verschlüsseln nutze ich den Code aus der CL, ich habe den link gerade nicht parrat.

Mit der folgenden Funktion lese ich ersteinmal das Binär-File ein :

Delphi-Quellcode:
function FileToString(const AFilename: string; StartPos: Integer=0; EndPos: Integer=0): string;
var
  FileStream : TFileStream;
  wlCount: Integer;
begin
  if FileExists(AFilename) then
  begin
    if StartPos < 0 then
      StartPos := 0;

    FileStream := TFileStream.Create(AFilename, fmOpenRead or fmShareDenyWrite);
    try
      if (EndPos <= StartPos) or (EndPos > FileStream.Size) then
        EndPos := FileStream.Size;
      wlCount := EndPos - StartPos;
      if FileStream.Size > StartPos then
      begin
        SetLength(Result, wlCount);
        FileStream.Seek(StartPos, soFromBeginning);
        FileStream.Read(Result[1], wlCount);
      end;
    finally
      FileStream.Free;
    end;
  end
  else
    Result := '';
end;
Der Author hat darauf hingewiesen, dass es zu Fehlern kommen kann, joar und das ist aufgetreten.

MyCode := FileToString(MeineBinärDateiDa);
RC4Init(MyContext,'MeinPasswort'); // Passwort
RC4Code(MyContext,MyCode, MyCryptCode,Length(MyCode)); // Verschlüsseln
RC4Done(MyContext);

So nun bekomme ich eine AccessViolation. Und zwar beim RC4Code.

Lasse ich mir "MyCode" ShowMessagen kommt auch nur "LMZ"

Wie gehe ich das besser an?
Marc S.
  Mit Zitat antworten Zitat