我想在delphi XE6上将旧的加密函数从lockbox2迁移到lockbox3。 在此之前我已经制作了一个code(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==
我做错了什么,但我能弄清楚是什么。
任何提示?
提前致谢。