Crypto Ini entschlüsseln

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Sumel
User
Beiträge: 3
Registriert: Montag 4. Februar 2008, 19:39

Montag 4. Februar 2008, 19:58

Hi
erst mal wollte ich sagen ihr habt nettes forum :wink:
Ich bin der sumel und 18 jahre.
Ich habe vor ca 4 monaten mit delphi 7 angefangen.
So nun habe ich erste mal heute python geladen und wollte einen decryter source code von delphi 7 nach python um wandeln.
Aber ich schaffe es nicht ,da ich phython wohl keine crypt liberies besitz.

Ich möchte gerne diesen code in einem kleinen gui in python mit euer hilfe ertellen,das ich eine ini laden kann und decrypten kann auch ala stext oder ini anbpeichern kann.

Könnte mir jemand bitte unter die arme greifen und einen source snipsel mit gui zum öfnen und decrypten und als txt speichern coden bzw zeigen.
Ich habe leider keinen schimmer wie das funzt.

Code: Alles auswählen

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DCPcrypt2, DCPrc4, StdCtrls, DCPsha1;

type
  TForm9 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    DCP_rc41: TDCP_rc4;
    Button2: TButton;
    DCP_sha11: TDCP_sha1;
    Edit3: TEdit;
    Edit4: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
  var
    Cipher: TDCP_rc4;
    KeyStr: string;
    Source, Dest: TFileStream;
  begin
    KeyStr:= 'der publick key';
   // if InputQuery('Passphrase','Enter passphrase',KeyStr) then  // get the passphrase
    begin
      try
        Source:= TFileStream.Create(Edit1.Text,fmOpenRead);
        Dest:= TFileStream.Create(Edit2.Text,fmCreate);
        Cipher:= TDCP_rc4.Create(Self);
        Cipher.InitStr(KeyStr,TDCP_sha1);              // initialize the cipher with a hash of the passphrase
        Cipher.EncryptStream(Source,Dest,Source.Size); // encrypt the contents of the file
        Cipher.Burn;
        Cipher.Free;
        Dest.Free;
        Source.Free;
       // MessageDlg('File encrypted',mtInformation,[mbOK],0);
      except
        //MessageDlg('File IO error',mtError,[mbOK],0);
      Close;
      end;
    end;
  end;

procedure TForm1.Button2Click(Sender: TObject);
  var
    Cipher: TDCP_rc4;
    KeyStr: string;
    Source, Dest: TFileStream;
  begin
    KeyStr:= 'der publick key';
    //if InputQuery('Passphrase','Enter passphrase',KeyStr) then  // get the passphrase
    begin
      try
        Source:= TFileStream.Create(Edit3.Text,fmOpenRead);
        Dest:= TFileStream.Create(Edit4.Text,fmCreate);
        Cipher:= TDCP_rc4.Create(Self);
        Cipher.InitStr(KeyStr,TDCP_sha1);              // initialize the cipher with a hash of the passphrase
        Cipher.DecryptStream(Source,Dest,Source.Size); // decrypt the contents of the file
        Cipher.Burn;
        Cipher.Free;
        Dest.Free;
        Source.Free;
        //MessageDlg('File decrypted',mtInformation,[mbOK],0);
      except
        //MessageDlg('File IO error',mtError,[mbOK],0);
        Close;
      end;
    end;
  end;

end.
Zuletzt geändert von Sumel am Montag 4. Februar 2008, 20:13, insgesamt 3-mal geändert.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7472
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Montag 4. Februar 2008, 20:04

Also zum einen müsste man diesen Decrypt-Algo ja erst einmal kennen und zum anderen solltest Du erst mal "klein" anfangen. Lerne erst einmal die Kontrollstrukturen usw. von Python kennen, bevor Du etwas "riesiges" mit GUI basteln willst.

Dann taste Dich langsam an den Decodier-Algo ran (Wenn es diesen denn quelloffen gibt!). Am Anfang tuts ja wohl auch eine Konsolenversion - die GUI ist dann später eh nur Aufsatz!
Sumel
User
Beiträge: 3
Registriert: Montag 4. Februar 2008, 19:39

Montag 4. Februar 2008, 20:10

Hi also den algo kenne ich ja habe ich ja, selber in delphi coded.
Verwendete kompos in delphi http://www.cityinthesky.co.uk/
RC4 mit sha1,klar muß das kein gui für den anfang sein^^
Leider konntest du mir nicht helfen,wie das mit cryptliebs ausieht,hoffe jemand kann mir noch helfen.
Trotzdem danke für deine zeit.

Code: Alles auswählen

Cipher:= TDCP_rc4.Create(Self);
        Cipher.InitStr(KeyStr,TDCP_sha1);              // initialize the cipher with a hash of the passphrase
        Cipher.DecryptStream(Source,Dest,Source.Size); // decrypt the contents of the file
Benutzeravatar
Hyperion
Moderator
Beiträge: 7472
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Montag 4. Februar 2008, 20:12

Also selbst die Suche nach "python" und "sha1" bei google liefert als ersten Eintrag den Link auf die Doku ;) Für den Fall, dass Du selber nicht daran gedacht hast, dort zuerst nachzusehen :D
BlackJack

Montag 4. Februar 2008, 20:24

@Sumel: Ich bin jetzt ein wenig irritiert, Du hast den Algorithmus selber implementiert oder den Code von der angegebenen Homepage verwendet!?

Falls der RC4 von dort mit dem ARC4 aus diesem Paket kompatibel ist, brauchst Du ihn vielleicht nicht selbst implementieren: http://www.amk.ca/python/code/crypto.html
Sumel
User
Beiträge: 3
Registriert: Montag 4. Februar 2008, 19:39

Dienstag 5. Februar 2008, 09:48

Guten Morgen
Hi also ich habe die crypto kompo von der hp benütz in Delphi und natürlich selber eingebaut.
Dein link sieht gut aus.Das hatte ich ja gesucht.
Werde mein glück versuchen.
Antworten