Delphi免费加密库

27

我正在寻找一款免费且最新的加密库,用于Delphi 2010,可实现RSA和AES(Rijndael)功能。

我需要一个免费的库,因为我计划编写并发布一些使用它的示例代码。

虽然TurboPower LockBox的Delphi 2010版本已经发布在SongBeamer网站上,包括这两个功能,但我担心它有点过时。例如,RSA密钥长度较短,并且多年来没有新的安全功能。

更新: 是否认为LockBox过时或缺少重要功能是不正确的?它对生产开发仍然有意义吗?(特别是RSA密钥大小)


7
加密技术何以变得“老态龙钟”?它仍然有效,对吧?算法就是算法。 :-) - Nick Hodges
2
Lockbox足够简单,应该仍然可以正常工作,SongBeamer所做的端口是为了支持Unicode。2010年的更改可能微不足道,最有可能只是添加了编译器版本检查。 - skamradt
2
Lockbox没有非对称加密算法,不适用于实际的证书和PKI基础设施。我测试过的Delphi最好的库是来自Eldos的SecureBlackbox。它是VCL并且可以使用X.509和PKI。当然,它不是免费的。 - Francis Lee
RSA 不是一种非对称算法吗? - Bruce McGee
我浪费了好几天的时间试图使用LockBox - “原始”版本有缺陷*,而3.0版本具有奇怪的API。办公室里的一个人用C#编写了一些东西,它可以通过从德里调用COM来工作。虽然丑陋,但可靠。 *错误1:填充计算不正确,因此您只能使用lockbox(而不是另一个库)进行解密,错误2:我注意到一个小质数函数返回一个偶数(难以信任库之后!)。 - robocat
显示剩余2条评论
10个回答

16

TurboPower LockBox 3.1.0已经发布,它支持:

  • Delphi 2007和Delphi 2010
  • 支持Delphi 2010的Unicode字符串
  • AES、DES、3DES、Blowfish和Twofish密码算法
  • 多种分组链接模式
  • MD5和SHA1哈希算法
  • RSA加密、解密、签名和验证
  • 可变长度的RSA密钥-几乎没有任何范围限制
  • D-Unit测试代码
  • 自动加盐
  • 适当地管理IV(与DCPcrypt相比)
  • 白盒,免费且开源
  • 100%可见本地源代码(无DLL)

http://sourceforge.net/projects/tplockbox/http://lockbox.seanbdurkin.id.au/


这不适用于Delphi 2007。 - FZS

13

RSA算法并非过时,但关键长度很重要。它仍然广泛使用。如果需要在2030年之后保证安全性,应该使用一个3072位的RSA密钥长度。这只是计算能力提高的结果,不是算法的弱点。

SongBeamer开始维护LockBox(Delphi 2007)之前,我发现RSA不稳定 - 会偶尔崩溃或产生错误的结果。虽然这可能已经被修复了。如果打算使用它,请确保它支持所需的密钥长度,并创建一些已知输入和输出的自动化测试,确保它稳定运行。如果确实稳定,则可以放心使用。

您还可以使用Microsoft Crypto API来进行RSA加密。我为Delphi 2007写了一个包装器,但没有更新到Unicode版本(我知道,这很不好)。其他人可能轻松地将其更新为Unicode版本。

另一个选择是通过COM互操作或其他方式使用.NET Framework的加密功能。


+1 为加密 API 封装的点赞。 - Bruce McGee
我注意到阅读Microsoft Crypto API wrapper文档时,像SHA-256和SHA-512这样的算法在Windows XP SP3以下版本不受支持。如果你正在开发需要在远离城市的地方运行的应用程序,而那里可能仍在运行XP SP2,这可能会成为一个问题。 - rossmcm
另一个MS Crypto API包装器 - http://cc.embarcadero.com/item/17598 - naXa stands with Ukraine

12

嗨,Bruce,我使用这个库自从 Delphi 5 开始:

Delphi 加密组件第一部分 v.5.2

  • 完全重写了以前的 DEC 3 版本,更新到 DEC 5.1(2006 年发布)
  • 提供多种密码算法(Blowfish、Twofish、3DES、Rijndael 等)
  • 提供多种哈希算法(MD2/4/5、SHA1-512、RipeMD128-320 等)
  • 提供校验和函数(CRC32、CRC16 等)
  • 提供文本转换函数(MIME Base 64、XX/UU 编码等)
  • 提供安全随机数函数
  • 支持在密码加密模式中使用(CTS/CBC/CFB/OFB/ECB 等)
  • 完全面向对象且易于使用
  • 高度优化,核心速度快
  • 支持 D2009 中的 ANSI 和 Unicode(在以下版本中可以使用 WideStrings)......

是免费软件,附带源代码,不幸的是不包括 RSA。


它已经迁移到Google Code:http://code.google.com/p/delphidec/ 我喜欢DEC的一个小细节是,你只需要包含1个目录,而不是DCPCrypt的3个目录。 - Ray Hulha

9

看起来D2010工作已完成

TurboPower LockBox . 数据加密 . 2009年9月4日 . 下载

状态:应该正常工作。
此库已扩展,以支持Ansi和UnicodeStrings的加密。
2009年9月4日
* Delphi 2010包
* 应该能够编译而无需提示和警告


5

我不知道您所说的“long in the tooth”(老?)是什么意思,但我会选择Lockbox,因为它提供了您需要的一切。除了2009年更新之外,最后一个官方更改是在2003年进行的。但是,如果它能正常工作,那就没问题。


3

对于示例代码,LockBox可能还可以,但我不会再在生产中使用它。加密技术变得“老态龙钟”。算法变旧了。以前未被发现的缺陷、改进的密码分析技术、数学进步、处理器能力的增强使曾经安全的算法和密钥长度不再足够安全。3DES、MD5、SHA-1已经被认为不够安全。最小推荐RSA密钥大小现在是1024位,如果需要保护数据多年,则建议使用2048位和3072位密钥。Lockbox仅提供1024位或更少的密钥。 正确的块密码模式也必须被选择。而LockBox TLbRijndael(AES)类默认使用ECB,这种模式已经有已知的缺陷,并且不提供比CBC更多的东西。 由于电子安全在这些年中获得的重要性,以及随之而来的好人和坏人的研究,一个七年的库真的很老 - 只是重新编译它并添加对UTF-16字符串的支持是不够的。 请注意,虚假的安全比没有安全更糟糕。如果系统管理员被告知“我们没有任何安全措施”,他将自己工作以实施安全(例如IPSec、VPN或类似的东西)。如果他被告知“是的,我们有RSA和AES!”,即使您的AES和RSA实现已经过时且不再安全,他也会感觉好。

谁给我点了踩,能解释一下为什么吗?请告诉我哪里错了... - user160694

1

基础编码库包含AES和RSA加密的实现。我没有使用过该库,因此无法评论其质量。


1

我还没有在D2010中尝试过,但是DCPcrypt据说可以在D2009中使用。


我看到了这个。从Delphi 2009迁移到Delphi 2010应该是微不足道的。不幸的是,它没有实现RSA。至少我没有看到。 - Bruce McGee
我认为你是对的 - 我当时只关注了AES。 - Argalatyr

0
Daniele Teti发布了适用于Delphi 2010的DataSnap过滤器集合,其中包括哈希、密码和压缩。他提到未来可能还会实现非对称密码。

http://www.danieleteti.it/

这是开源的,所以请随意贡献。


0

好像有很多免费的 Delphi AES 实现。欢迎在这里添加你喜欢的。

似乎没有那么多免费的 RSA 实现,而且几乎没有库提供两者都支持的功能。

看起来 LockBox 仍然是一个相当合理的选择。特别是因为我不需要需要数年才能破解的加密。

我认为直接使用 Microsoft 的 Crypto API 可能是最实用的选择。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接