3DES és DEC (Delphi Encryption Compendium) - 2. oldal - Delphi-PRAXiS

ez igaz

3des

Inkább veszteséges vagyok, végeztem a munkámmal, de mégis hihetően szeretném megoldani, ha valaha is vissza kell esnem a DEC-re és a 3DES-re

AW: 3DES és DEC (Delphi Encryption Compendium)

Vegye a CBC-t, de a cmCBCx-et használja módként.

Talán vannak problémák ezzel

AW: 3DES és DEC (Delphi Encryption Compendium)

És mint mondtam, ezt a párnázással is megoldottam, ha az utolsó blokk nem teljes

de az algoritmus 8 bájt szemetet csinál, aztán 248 bájt minden nagyszerű, majd ismét periodikus hülyeség

Lehet, hogy a programomnak köszönhető, de nem tettem semmi feltűnőt a mutató hajlításával vagy bármi mással

AW: 3DES és DEC (Delphi Encryption Compendium)

oké, hamva a fejem felett * kacsa *. hibát talált, a bemeneti puffer csak 256 bájt volt. és a fájl elolvasása korrupt volt


de az első 8 bájt továbbra is logikátlan

Regisztráció ideje: 2003. október 11
Helyszín: Firenze az Elbán
36 983 hozzászólás

AW: 3DES és DEC (Delphi Encryption Compendium)

AW: 3DES és DEC (Delphi Encryption Compendium)

van egy "inicializálási vektor"

és valahogy megtelik, ha nem említem
most beállította # 0 # 0 # 0 # 0 # 0 # 0 # 0 # 0 -ra, és most az első blokk is olvasható

használja a DECUtil, DECCipher, DECFmt;

// CrypTool párnázás a CBC-ben a kitöltések számával.
// tehát pl. # 4 # 4 # 4 # 4, ha 4 kitöltésre kerül
// A CBC használatával a blokk mérete 8-ra bővül.
// bemenet = 15 bájt, kimenet = 16. párna # 1
// bemenet = 16, kimenet = 24. párna # 8 # 8 # 8 # 8 # 8 # 8 # 8 # 8
// A IV inicializálása 8-szor 0-val, különben az első blokk a szemét # 0 # 0 # 0 # 0 # 0 # 0 # 0 # 0
eljárás TForm1.Button1Click (Feladó: TObject);
var
DefCipherClass: TCipher_2DES;
Hőmérséklet: Húr;
kezdődik
DefCipherClass: = TCipher_2DES.Create;
DefCipherClass.Mode: = cmCBCx;

Hőmérséklet: = 'AAAAAAAAAAAAAAAA';
DefCipherClass.Init (Temp, # 0 # 0 # 0 # 0 # 0 # 0 # 0 # 0); // jelszó beállítása és IV
Memo1.Lines.Add (IntToStr (Hossz (Temp)) + ':' + Temp);
Memo1.Lines.Add (TFormat_HEX.Encode (Temp));

// üzenetünk + párnázás, hogy elérjük a 8. méretet
Hőmérséklet: = '123456789012345' + # 1;
Memo1.Lines.Add (IntToStr (Hossz (Temp)) + ':' + Temp);
Memo1.Lines.Add (TFormat_HEX.Encode (Temp));

Temp: = DefCipherClass.EncodeBinary (Temp); // titkosítás
Memo1.Lines.Add (IntToStr (Hossz (Temp)) + ':' + Temp);
Memo1.Lines.Add (TFormat_HEX.Encode (Temp));

Temp: = DefCipherClass.DecodeBinary (Temp); // visszafejteni
Memo1.Lines.Add (IntToStr (Hossz (Temp)) + ':' + Temp);
Memo1.Lines.Add (TFormat_HEX.Encode (Temp));

// Most el kell távolítani a párnázást

most meglepődtem, hogy milyen könnyű volt a DEC ^^
gyorsan elborult az elején, mert túl sok volt a példákban, és nehéz volt kiszűrnem, amire szükségem volt
de ha megvan a perspektíva, a DEC csak fantasztikus

és ha kihagyja az összes Memo1.Lines-t. Adjon hozzá egy 10 soros kódot a 3DES-sel történő titkosításhoz és azonnali újbóli visszafejtéséhez.

eljárás TForm1.Button1Click (Feladó: TObject);
var
DefCipherClass: TCipher_2DES;
Hőmérséklet: Húr;
kezdődik
DefCipherClass: = TCipher_2DES.Create;
DefCipherClass.Mode: = cmCBCx;
DefCipherClass.Init ('AAAAAAAAAAAAAAAA', # 0 # 0 # 0 # 0 # 0 # 0 # 0 # 0); // jelszó beállítása és IV

Hőmérséklet: = '123456789012345' + # 1; // szöveg + kitöltés
Temp: = DefCipherClass.EncodeBinary (Temp); // titkosítás
DefCipherClass.Done; // takarít
Temp: = DefCipherClass.DecodeBinary (Temp); // visszafejteni
// Most el kell távolítani a párnázást
DefCipherClass.Free;
vége;

ez most 100% -ban kompatibilis a CrypTool eszközzel