Delphi中的免费数字签名库

3
有没有任何免费的库实现数字签名?我需要它在Delphi 2010中可用并且是可移植的。可移植意味着该库应该实现实际的算法,而不是使用Windows API。
TurboPower LockBox对我来说不起作用:这里有一个解释

我不确定是tlockbox,但有一个免费的Delphi库创建了非常低质量的密钥对。这再次表明,使用像OpenSSL这样经过良好评审的代码进行加密是一个好主意。 - CodesInChaos
锁匣3中的错误已经修复。现在应该可以正常工作了。我认为CodeInChaos指的是锁匣2。锁匣3会花费很多精力来创建高质量的密钥对。 - Sean B. Durkin
再次查看了代码。似乎是LockBox 2.07。问题在于(在Windows上),PRNG以一种获取大约16位熵/ 60000个不同种子的当前时间为种子的方式进行初始化。因此,每组设置仅创建约60000个不同的RSA密钥。在Linux上稍微好一些(但仍然有问题),从/dev/random获得32位熵。 - CodesInChaos
关于LB2我同意。LB3的做法不同。你可以选择提供自己的PRNG种子(提供了一个演示程序,展示如何获得64位熵真随机种子),或使用默认方式,即调用MS CryptAPI(Microsoft Base Cryptographic Provider)的CryptGenRandom函数。如果不可用,则将使用RDTSC指令。这应该会给出接近64位的熵。我同意,32位熵是完全错误的实现。 - Sean B. Durkin
3个回答

4

OpenSSL 可以使用。它是免费的并可以在许多不同的平台上运行。它不是一个“Delphi”库,而是一个API,但可以从Delphi应用程序中调用。


OpenSSL的主要问题在于其API非常复杂。所有对它的支持都偏向于C++,因此Delphi程序员很难从他们的邮件列表中获得有用的帮助。当您只是具有基本加密需求的Delphi程序员时,学习曲线太陡峭了。 - Sean B. Durkin
@Sean:我同意使用起来很复杂...但我不认为API本身很复杂。问题更多是文档有点“具有挑战性”。一旦你弄清楚该怎么做,通常就会变得非常简单和明显(回想起来)。最终我买了一本O'Reilly书来帮助自己。这绝对物有所值。 - Mark Wilkins
@Eugene:嘿,我猜并不完全免费。但是40美元的书相当合理。但这也提出了另一方面的问题。关于“免费”软件的一个方面是自己投入在使某些东西运行上的时间。如果需要额外50小时的开发时间才能使“免费”解决方案运行起来,而中等价格的软件包则有良好的文档,则免费路线可能不是一个好主意。不过,在OpenSSL的情况下,我发现它是极其有价值的。 - Mark Wilkins

2

1

虽然不是完全免费,但我们的SecureBlackbox产品中的签名功能只需要任何一个包的许可证,而某些包的价格低于100美元。

请注意,这个价格可以获得相当广泛的功能,包括使用RSA、DSA(仅签名)和椭圆曲线进行PKCS#1和PKCS#7签名和加密,以及对称加密、广泛的证书支持等等。

或者您可以使用OpenSSL接口,它也提供了广泛的功能,并且是免费的。然而,它的API并不容易理解,并且像任何免费软件一样,支持是有问题的。


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