Delphi 10 AES 128 ECB калькулятор ошибка
Я использую TurboPower Lockbox 3. Это не дает правильный результат, где я могу сделать ошибки?
Я делаю правильный расчет на этом сайте.
Я вычисляю питона и получаю правильный результат.
правильный результат.
'E6861877DB7B021E8B755F927243ED7B'
Есть разные результаты, когда я вычисляю это как delphi.
function EncryptText_AES_128(input: string; password: string): ansistring;
var
Codec: TCodec;
CipherText: String;
begin
Codec := TCodec.Create(nil);
try
Codec.CryptoLibrary := TCryptographicLibrary.Create(Codec);
//
Codec.StreamCipherId := BlockCipher_ProgID;
Codec.BlockCipherId := Format(AES_ProgId, [128]);
Codec.ChainModeId := ecb_ProgId;
//
Codec.Password := Password;
Codec.EncryptString(input, CipherText,tencoding.UTF8);
//
Result := (CipherText);
finally
Codec.Free;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
memo1.Lines.Add( EncryptText_AES_128(#$00#$01#$02#$03#$04#$05#$06#$07#$08#$09#$0a#$0b#$0c#$0d#$0e#$0f,#$78#$34#$90#$fd#$6a#$6c#$90#$f0#$72#$36#$a8#$ed#$40#$27#$94#$f8#$73#$2c#$96#$fb#$71#$1f#$a0#$f4#$6c#$34#$9a#$c4#$79#$24#$93#$e8));
end;
где я делаю ошибки?
1 ответ
Я уже говорил вам в вашем старом вопросе AES 128 ECB Delphi, что #$78#$34#$90#$fd#$6a#$6c#$90#$f0#$72#$36#$a8#$ed#$40#$27#$94#$f8#$73#$2c#$96#$fb#$71#$1f#$a0#$f4#$6c#$34#$9a#$c4#$79#$24#$93#$e8
нет 128-битного ключа.
Я могу воспроизвести вывод вашего онлайн-калькулятора с моей собственной программой, если я использую AES-256-ECB. Здесь полная программа и вывод
uses
aes_type, aes_ECB, mem_util;
var
Context: TAESContext;
ct: array[0..50] of byte;
const
pt: array[0..15] of byte = ($00,$01,$02,$03,$04,$05,$06,$07,
$08, $09,$0a,$0b,$0c,$0d,$0e,$0f);
const
key256 : array[0..31] of byte = ($78,$34,$90,$fd,$6a,$6c,$90,$f0,
$72,$36,$a8,$ed,$40,$27,$94,$f8,
$73,$2c,$96,$fb,$71,$1f,$a0,$f4,
$6c,$34,$9a,$c4,$79,$24,$93,$e8);
begin
AES_ECB_Init_Encr(key256, 256, context);
AES_ECB_Encrypt(@pt, @ct, sizeof(pt), context);
writeln(hexstr(@ct, sizeof(pt)));
end.
D:\BP_WE\WORK\AES\BASE>C:\Programme\BORLAND\DELPHI6\Bin\DCC32 -uC:\Programme\BOR
LAND\DELPHI6\LIB;. -b -q -cc t_ecb.pas
Borland Delphi Version 14.0
Copyright (c) 1983,2002 Borland Software Corporation
6290 lines, 0.11 seconds, 13144 bytes code, 6805 bytes data.
D:\BP_WE\WORK\AES\BASE>T_ECB.EXE
e6861877db7b021e8b755f927243ed7b
Если я использую AES-128, результат df6dfb1fca78323413c9ec48a3162b0a
, Поэтому, если вы хотите получить тот же вывод, что и ваш калькулятор, используйте AES-256.