2

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==

私は何か間違ったことをしていますが、私は何を理解することができます。

ヒントはありますか?

前もって感謝します。

4

0 に答える 0