我试图在 Delphi 中找到一些关于如何使用 Microsoft CryptoAPI 对数据进行签名的完整示例。在网上我发现主要是片段和伪代码,但没有具体的例子来说明如何做到这一点。
据我了解,在花了一天时间寻找代码和信息之后,您可以根据公钥创建文档/文件的哈希(如果您自己生成一对,或者由钥匙串上的证书提供)。然后将此哈希编码到加密的输出文件(容器部分)中,并且可以由持有私钥的接收者验证和解码。
如果不存在 Delphi 示例,是否有任何免费的命令行程序可以用来签署文件/文档?
我找到了用于 MD5/SHA1 散列的代码,以及使用密码字符串加密文件的代码(从动态生成的 keypar 派生散列)。但遗憾的是没有签署流或文件。谷歌上最接近的匹配是 Turbopower (LockBox) 的旧产品,但我不知道生成的输出是否与 MS cryptoAPI (?)
更新:这是我正在寻找的东西,但用 C 语言编写:http: //blogs.msdn.com/b/alejacma/archive/2008/01/23/how-to-sign-and-验证与cryptoapi-and-a-user-certificate.aspx
此外,当您将问题降级时 - 足以描述您这样做的原因。对于您在大型企业应用程序中面临的问题,对于 Delphi 来说这是一个完全有效的问题。