我目前正在将一个项目(使用加密)从 Delphi 6 转换为 XE。该项目使用旧的 Delphi Encryption Compendium,它在 XE 中不起作用。所以我想我会从那个组件集换成 LockBox。LockBox 有两个版本 - 2 和 3。我在 Delphi 6 中使用 LockBox2 没有问题。我虽然会在 XE 中使用 LockBox3,但我遇到的问题是我在使用时无法获得相同的结果ExFile 演示程序(来自 LockBox2)。
在那个演示中,我选择了 Blowfish 算法,将密码设置为不带引号的“testkey”,程序将加密文件。
在 Delphi XE 中,我掉到了表单上
Codec1: TCodec;
CryptographicLibrary1: TCryptographicLibrary;
并将 Codec1 链接到 CryptographicLibrary1 并单击按钮时执行以下代码(在 LockBox3 站点上找到用于解密字符串的类似代码)....
codec1.StreamCipherId := BlockCipher_ProgId;
codec1.BlockCipherId := Blowfish_ProgId;
codec1.ChainModeId := ECB_ProgId;
codec1.Password := 'testkey';
codec1.encryptFile('d:\tools\mingw\bin\md5.exe',
'd:\tools\mingw\bin\md5_xe_2.exe');
但最终结果是输出文件的大小与 LockBox2 ExFile 演示中的大小不同。
所以我的问题是......
我在上面的 XE 代码中做错了什么,以至于我从 LockBox2 给 ExFile 演示提供了不同的结果?
我应该只在 XE 中使用 LockBox2 吗?
与 2 相关,是否有人在看守代码 LockBox2(用于 XE)?
任何帮助将不胜感激。
问候,