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