Delphi XE6 で、古い暗号化機能を lockbox2 から lockbox3 に移行したいと考えています。その前に、セットアップが変更されたため、出力を比較するコード(CipherComp.dpr) を作成しました。
AES-ECB (IV を回避するため) 256 ビット、キー: '1234567890'、テキスト: 'a secret word' を使用しています。
TPLB2を使用して、次のように初期化します
FAES : TLbRijndael;
FAES := TLbRijndael.Create(nil);
FAES.CipherMode := cmECB; // cmECB (default), cmCBC
FAES.KeySize := ks256; // ks128, ks192
FAES.SetKey('1234567890'); // set the password here
次を使用して暗号化します。
Result := FAES.EncryptString(pString);
一方、TPLB3 ではこのように変更されます
FCodec: TCodec;
FCryptoLib: TCryptographicLibrary;
FCodec := TCodec.Create(nil);
FCryptoLib := TCryptographicLibrary.Create(nil);
FCodec.CryptoLibrary := FCryptoLib;
FCodec.StreamCipherId := uTPLb_Constants.BlockCipher_ProgId;
FCodec.BlockCipherId := 'native.AES-256';
FCodec.ChainModeId := uTPLb_Constants.ECB_ProgId;
FCodec.Password := '1234567890';
そして暗号化
FCodec.EncryptAnsiString(pString, Result);
ただし、同じテキストを暗号化すると出力が一致しません。
a secret word qD9+fF1EqdQH8C3TrEaLQg==
a secret word 1bUXLgXwob1cL6O27HMViw==
私は何か間違ったことをしていますが、私は何を理解することができます。
ヒントはありますか?
前もって感謝します。