我想在 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==
我做错了什么,但我可以弄清楚是什么。
有什么提示吗?
提前致谢。