TSimpleCodec.Begin_EncryptMemory - 错误的模式

时间:2012-04-12 19:46:44

标签: delphi turbopower lockbox-3

我得到TSimpleCodec.Begin_EncryptMemory - 错误的模式异常将执行以下代码。这有什么不对吗?

FLibrary := TCryptographicLibrary.Create(Self);
FCodec := TCodec.Create(Self);
FCodec.CryptoLibrary := FLibrary;
FCodec.BlockCipherId := 'native.AES-256';
FCodec.ChainModeId := 'native.ECB';
FCodec.Password := 'password';
plain := 'The plain text';
FCodec.EncryptString(plain, astr);
FCodec.DecryptString(dec, astr);

1 个答案:

答案 0 :(得分:0)

通过运行时代码初始化编解码器时,需要设置StreamCipherId。在设置BlockCipherId之前插入以下行。

 FCodec.StreamCipherId := BlockCipher_ProgId;

如果使用设计时值设置编解码器,则无需执行此操作。在设计时更容易做到。只需根据需要设置已发布的属性。

Delphi 2010的演示程序,在方法TmfmLockbox3_Demo.FormCreate()和TmfmLockbox3_Demo.actCustomBlockEncryptExecute()中给出了一个示例。

另请阅读on-line help

作为一般提示,如果您只是查看演示程序和/或阅读在线帮助,您将很少需要访问StackOverflow。如果文档中有任何缺点,请在LockBox论坛上发布一些建设性的可操作建议,以改进文档(演示+在线帮助)。