2

我想在 delphi XE6 上将旧的加密功能从 lockbox2 迁移到 lockbox3。在此之前,我已经编写了一个代码(CipherComp.dpr)来比较输出,因为设置已经改变。

我正在使用 AES-ECB(以避免 IV)256 位,密钥:'1234567890',文本:'一个秘密词'

使用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