3DES со DEC (Делфи список за шифрирање) - Страна 2 - Delphi-PRAXiS

правилно е

3des

Јас сум повеќе во загуба, јас завршив со мојата работа, но сепак би сакал да најдам веродостојно решение ако треба да се вратам на DEC и 3DES

AW: 3DES со DEC (список за криптирање на делфи)

Треба да земете CBC, но користете cmCBCx како режим.

Можеби има проблеми со тоа

AW: 3DES со DEC (список за криптирање на делфи)

И, како што реков, го решив и полнењето кога последниот блок не е полн

но алгоритмот прави 8бајт ѓубре, потоа 248 бајти сè е супер, а потоа повторно периодични глупости

Можеби се должи на мојата програма, но јас не направив ништо видливо со свиткување на покажувачот или со што било друго

AW: 3DES со DEC (список за криптирање на делфи)

ок, пепел над мојата глава * патка *. најде грешка, тампонот за влез беше само 256 бајти. и читањето на досието беше корумпирано


но првите 8 бајти се сè уште нелогични

Регистриран од: 11 октомври 2003 година
Локација: Фиренца на Елба
36.983 објави

AW: 3DES со DEC (список за криптирање на делфи)

AW: 3DES со DEC (список за криптирање на делфи)

постои „вектор за иницијализација“

и некако се полни ако не го спомнам
сега го поставивме на # 0 # 0 # 0 # 0 # 0 # 0 # 0 # 0 и сега може да се прочита и првиот блок

користи DECUtil, DECCipher, DECFmt;

// Пополнување на CrypTool на CBC со број на облоги.
// така на пр. # 4 # 4 # 4 # 4 кога се пополнети 4
// Со CBC, големината на блокот е проширена на/за 8.
// влез = 15 бајти, излез = 16. полнење # 1
// влез = 16, излез = 24. полнење # 8 # 8 # 8 # 8 # 8 # 8 # 8 # 8
// Иницијализирајте го ИВ со 8 пати 0, инаку првиот блок е ѓубре # 0 # 0 # 0 # 0 # 0 # 0 # 0 # 0
постапка TForm1.Button1Click (испраќач: TObject);
вар
DefCipherClass: TCipher_2DES;
Темп: низа;
започне
DefCipherClass: = TCipher_2DES.Create;
DefCipherClass.Mode: = cmCBCx;

Темп: = 'AAAAAAAAAAAAAAAAA';
DefCipherClass.Init (Темп, # 0 # 0 # 0 # 0 # 0 # 0 # 0 # 0); // постави лозинка и IV
Memo1.Lines.Add (IntToStr (Должина (Temp)) + ':' + Temp);
Memo1.Lines.Add (TFormat_HEX.Encode (Temp));

// нашата порака + полнење за да ја блокираме големината 8
Темп: = '123456789012345' + # 1;
Memo1.Lines.Add (IntToStr (Должина (Temp)) + ':' + Temp);
Memo1.Lines.Add (TFormat_HEX.Encode (Temp));

Темп: = DefCipherClass.EncodeBinary (Темп); // криптирај
Memo1.Lines.Add (IntToStr (Должина (Temp)) + ':' + Temp);
Memo1.Lines.Add (TFormat_HEX.Encode (Temp));

Темп: = DefCipherClass.DecodeBinary (Темп); // дешифрира
Memo1.Lines.Add (IntToStr (Должина (Temp)) + ':' + Temp);
Memo1.Lines.Add (TFormat_HEX.Encode (Temp));

// Сега облогата треба да се отстрани

сега сум изненаден колку беше лесно со DEC ^^
набрзина беше презаситен на почетокот затоа што имаше многу многу во примерите и ми беше тешко да филтрирам што ми требаше
но штом ја имате перспективата, ДЕК е прекрасно

и ако ги изоставите сите Memo1.Lines. Додадете тоа е код од 10 линии за шифрирање со 3DES и потоа повторно дешифрирање

постапка TForm1.Button1Click (испраќач: TObject);
вар
DefCipherClass: TCipher_2DES;
Темп: низа;
започне
DefCipherClass: = TCipher_2DES.Create;
DefCipherClass.Mode: = cmCBCx;
DefCipherClass.Init ('AAAAAAAAAAAAAAAAAAA', # 0 # 0 # 0 # 0 # 0 # 0 # 0 # 0); // постави лозинка и IV

Темп: = '123456789012345' + # 1; // текст + полнење
Темп: = DefCipherClass.EncodeBinary (Темп); // криптирај
DefCipherClass. Готово; // исчисти
Темп: = DefCipherClass.DecodeBinary (Темп); // дешифрира
// Сега облогата треба да се отстрани
DefCipherClass. Бесплатно;
крај;

ова сега е 100% компатибилно со CrypTool