unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DCPrijndael, DCPsha1, DCPsha256, DCPbase64, DCPcrypt2;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
ekey,inData,outData,iv: array of byte;
DCP_rijndael1: TDCP_rijndael;
hashSha256: TDCP_sha256;
i: integer;
begin
Memo1.Text:= '';
SetLength(ekey,32);
ekey[0]:= 24;
ekey[1]:= 36;
ekey[2]:= 238;
ekey[3]:= 166;
ekey[4]:= 104;
ekey[5]:= 47;
ekey[6]:= 110;
ekey[7]:= 134;
ekey[8]:= 41;
ekey[9]:= 126;
ekey[10]:= 153;
ekey[11]:= 138;
ekey[12]:= 224;
ekey[13]:= 58;
ekey[14]:= 27;
ekey[15]:= 211;
ekey[16]:= 161;
ekey[17]:= 150;
ekey[18]:= 219;
ekey[19]:= 4;
ekey[20]:= 47;
ekey[21]:= 171;
ekey[22]:= 118;
ekey[23]:= 186;
ekey[24]:= 71;
ekey[25]:= 2;
ekey[26]:= 4;
ekey[27]:= 132;
ekey[28]:= 150;
ekey[29]:= 181;
ekey[30]:= 225;
ekey[31]:= 188;
SetLength(iv,32);
iv[0]:= 115;
iv[1]:= 177;
iv[2]:= 54;
iv[3]:= 205;
iv[4]:= 146;
iv[5]:= 241;
iv[6]:= 247;
iv[7]:= 167;
iv[8]:= 97;
iv[9]:= 216;
iv[10]:= 227;
iv[11]:= 121;
iv[12]:= 251;
iv[13]:= 9;
iv[14]:= 172;
iv[15]:= 108;
iv[16]:= 248;
iv[17]:= 153;
iv[18]:= 208;
iv[19]:= 11;
iv[20]:= 22;
iv[21]:= 0;
iv[22]:= 83;
iv[23]:= 25;
iv[24]:= 49;
iv[25]:= 71;
iv[26]:= 159;
iv[27]:= 3;
iv[28]:= 217;
iv[29]:= 95;
iv[30]:= 144;
iv[31]:= 164;
SetLength(inData,64);
inData[0]:= 21;
inData[1]:= 67;
inData[2]:= 30;
inData[3]:= 50;
inData[4]:= 51;
inData[5]:= 231;
inData[6]:= 73;
inData[7]:= 159;
inData[8]:= 142;
inData[9]:= 59;
inData[10]:= 140;
inData[11]:= 161;
inData[12]:= 40;
inData[13]:= 33;
inData[14]:= 93;
inData[15]:= 73;
inData[16]:= 47;
inData[17]:= 48;
inData[18]:= 129;
inData[19]:= 136;
inData[20]:= 183;
inData[21]:= 114;
inData[22]:= 28;
inData[23]:= 116;
inData[24]:= 221;
inData[25]:= 49;
inData[26]:= 83;
inData[27]:= 223;
inData[28]:= 134;
inData[29]:= 153;
inData[30]:= 85;
inData[31]:= 86;
inData[32]:= 74;
inData[33]:= 142;
inData[34]:= 149;
inData[35]:= 96;
inData[36]:= 124;
inData[37]:= 168;
inData[38]:= 232;
inData[39]:= 236;
inData[40]:= 245;
inData[41]:= 232;
inData[42]:= 219;
inData[43]:= 8;
inData[44]:= 217;
inData[45]:= 207;
inData[46]:= 12;
inData[47]:= 186;
inData[48]:= 65;
inData[49]:= 92;
inData[50]:= 145;
inData[51]:= 160;
inData[52]:= 134;
inData[53]:= 201;
inData[54]:= 244;
inData[55]:= 139;
inData[56]:= 169;
inData[57]:= 172;
inData[58]:= 185;
inData[59]:= 101;
inData[60]:= 185;
inData[61]:= 55;
inData[62]:= 140;
inData[63]:= 54;
SetLength(outData,1000);
for i:= 0 to 999 do outData[i]:= 0;
DCP_rijndael1:= TDCP_rijndael.Create(self);
DCP_rijndael1.Init(ekey,256,@iv[0]);//InitStr(AnsiString(key), TDCP_sha256);//Init(ekey2,256,@ivv[0]);//Init(ekey,256,nil);////InitStr(key,TDCP_sha256);
// DCP_rijndael1.InitStr(ansiString('kLpRNNDyNM8JrMX3'),TDCP_sha256);
DCP_rijndael1.SetIV(iv);
DCP_rijndael1.BlockSize:= Length(iv);
DCP_rijndael1.CipherMode:= cmCBC;
DCP_rijndael1.DecryptCBC(inData,outData[0],Length(inData));
DCP_rijndael1.Burn;
DCP_rijndael1.Free;
// out:= DCP_rijndael1.DecryptString(toDecrypt);
// DCP_rijndael1.EncryptCBC(toDecrypt,outdata[0],Length(toDecrypt));
Memo1.Text:= string(outdata); //исходной строчки мне не показало
end;
end.