我想知道您是否知道在哪里可以找到有关如何为文档检索构建签名文件的信息。
你知道是否有一些我可以使用或查看的代码吗?
我必须在 linux 平台下用 C++ 创建一个签名文件。
更新:对不起,我很欣赏帮助,但我指的签名文件不是一种验证文档的方式,而是一种索引文档的方式。
http://en.wikipedia.org/wiki/Signature_files
任何帮助将不胜感激。
谢谢,
我想知道您是否知道在哪里可以找到有关如何为文档检索构建签名文件的信息。
你知道是否有一些我可以使用或查看的代码吗?
我必须在 linux 平台下用 C++ 创建一个签名文件。
更新:对不起,我很欣赏帮助,但我指的签名文件不是一种验证文档的方式,而是一种索引文档的方式。
http://en.wikipedia.org/wiki/Signature_files
任何帮助将不胜感激。
谢谢,
首先,让我们澄清一些术语。
数字签名旨在等同于手写签名(有关更好的描述和概述,请参阅http://en.wikipedia.org/wiki/Digital_signature)。
将数字签名应用于文档时,您可以获得更高级别的文档真实性保证(您可以更好地了解文档是否是伪造的)。
Adam 和 Robert 的回答都提到了验证文档完整性的方法(即文档未更改)。虽然数字签名也提供了这一点,但校验和(哈希)不提供真实性。
因此,我们确定您的“签名文件”的需求非常重要。我将假设您在谈论数字签名,而不是校验和,因为其他答案涉及校验和。
您将要编写一个 PKCS#7 分离签名(行话 - 不包含数据的标准格式签名,因此可以单独存储)。为了实现这一点,我建议您使用标准库,例如 OpenSSL(可移植)。
md5sum可能是您正在寻找的。如果您使用 Google 搜索,可以使用生成 md5 签名的源代码。
来自维基百科:
由于几乎对文件的任何更改都会导致其 MD5 哈希值也发生更改,因此 MD5 哈希值通常用于验证文件的完整性(即验证文件没有因文件传输、磁盘错误、干预, ETC。)。md5sum 程序默认安装在大多数 Unix、Linux 和类 Unix 操作系统或兼容层中。BSD 变体(包括 Mac OS X)有一个类似的实用程序,称为 md5。Microsoft Windows 的版本确实存在。
与 Adam 的建议类似,如果您正在处理大量文档,那么检查 SHA1 和 sha1sum 可能是个好主意。更少的冲突,以及更高级的加密。