AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

3DES mit DEC (Delphi Encryption Compendium)

Ein Thema von Dano · begonnen am 20. Aug 2011 · letzter Beitrag vom 8. Mär 2012
 
Benutzerbild von Dano
Dano

Registriert seit: 12. Aug 2004
49 Beiträge
 
#16

AW: 3DES mit DEC (Delphi Encryption Compendium)

  Alt 21. Aug 2011, 17:42
habs gefunden^^

es gibt einen "Initialization vector"

und der wird irgendwie randomm gefüllt wenn ich den nicht mit angebe
habe den jetzt extra auf #0#0#0#0#0#0#0#0 gesetzt und jetzt ist auch der erste block lesbar

Delphi-Quellcode:
implementation

uses DECUtil, DECCipher, DECFmt;

{$R *.dfm}

// CrypTool padding bei CBC mit der anzahl der padding's...
// also z.b. #4#4#4#4 wenn 4 aufgefüllt werden
// Bei CBC wird bei Blockgröße auf/um 8 erweitert...
// input=15byte, output=16... padding #1
// input=16, output=24... padding #8#8#8#8#8#8#8#8
// IV mit 8mal 0 initialisieren, sonst ist erster block müll #0#0#0#0#0#0#0#0
procedure TForm1.Button1Click(Sender: TObject);
var
  DefCipherClass: TCipher_2DES;
  Temp: String;
begin
  DefCipherClass:=TCipher_2DES.Create;
  DefCipherClass.Mode:=cmCBCx;

  Temp:='AAAAAAAAAAAAAAAA';
  DefCipherClass.Init(Temp,#0#0#0#0#0#0#0#0); // passwort und IV setzen
  Memo1.Lines.Add(IntToStr(Length(Temp))+':'+Temp);
  Memo1.Lines.Add(TFormat_HEX.Encode(Temp));

  // unsere nachricht + padding damit wir auf blockgröße 8 kommen
  Temp:='123456789012345'+#1;
  Memo1.Lines.Add(IntToStr(Length(Temp))+':'+Temp);
  Memo1.Lines.Add(TFormat_HEX.Encode(Temp));

  Temp:=DefCipherClass.EncodeBinary(Temp); // verschlüsseln
  Memo1.Lines.Add(IntToStr(Length(Temp))+':'+Temp);
  Memo1.Lines.Add(TFormat_HEX.Encode(Temp));

  DefCipherClass.Done; // aufräumen

  Temp:=DefCipherClass.DecodeBinary(Temp); // entschlüsseln
  Memo1.Lines.Add(IntToStr(Length(Temp))+':'+Temp);
  Memo1.Lines.Add(TFormat_HEX.Encode(Temp));

  // jetzt müßte noch das padding entfernt werden

  DefCipherClass.Free;
end;
bin jetzt selber überrascht wie einfach das mit DEC ging^^
war am anfang schnell überfordert weil in den beispielen soooo viel drin stand und ich nur schwer das für mich benötigte rausfiltern konnt
aber wenn man einmal den durchblick hat, ist das DEC einfach nur genial

und wenn man noch die ganzen Memo1.Lines.Add weglässt ist es ein 10 zeilen code um mit 3DES zu verschlüsseln und gleich wieder zu entschlüsseln
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  DefCipherClass: TCipher_2DES;
  Temp: String;
begin
  DefCipherClass:=TCipher_2DES.Create;
  DefCipherClass.Mode:=cmCBCx;
  DefCipherClass.Init('AAAAAAAAAAAAAAAA',#0#0#0#0#0#0#0#0); // passwort und IV setzen

  Temp:='123456789012345'+#1; // text+ padding
  Temp:=DefCipherClass.EncodeBinary(Temp); // verschlüsseln
  DefCipherClass.Done; // aufräumen
  Temp:=DefCipherClass.DecodeBinary(Temp); // entschlüsseln
  // jetzt müßte noch das padding entfernt werden
  DefCipherClass.Free;
end;
das ist jetzt zu 100% kompatibel zu CrypTool

danke euch für die hilfe
mfg Dano

Geändert von Dano (21. Aug 2011 um 17:51 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:55 Uhr.
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