【发布时间】:2011-09-21 00:44:37
【问题描述】:
我目前正在将一个项目(使用加密)从 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 代码中做错了什么,以至于我给 ExFile 演示提供了与 LockBox2 不同的结果?
我应该只在 XE 中使用 LockBox2 吗?
与2有关,是否有人在看代码LockBox2(XE)?
任何帮助将不胜感激。
问候,
【问题讨论】:
-
您确定 LockBox2 的结果正确吗?您是否使用另一个加密实用程序对其进行了测试以找出哪个库给您错误的结果? LockBox 3 有一个支持论坛,似乎很活跃。你试过在那里问你的问题吗?这是它的网址:lockbox.seanbdurkin.id.au/tiki-view_forum.php?forumId=2
-
XE 使用 Unicode,所以也要考虑这一点 - 它会影响字符串处理,这可能会影响大小。
标签: delphi delphi-xe delphi-6 turbopower lockbox-3