如何为文件添加签名?

How to add a Signature to a File?

我目前正在编写一个文件签名程序,它应该通过智能卡实现文件签名。

我已经实现了大部分,文件读出,算法,密钥计算例如

现在我遇到了问题,我已经创建了签名(我有一个字节数组)并且可以将这个签名导出为文件。

但是我如何实际签署原始文件并将签名添加到文件中? (如签名的 pdf 文件) 我已经搜索了 google 但没有找到任何东西,也许你们可以帮助我。

希望尽快得到答案

有两种常见的方式来处理签名文件。最常见的方法是将签名文件简单地放在原始文件附近的一个不同的文件中,该文件具有相同的名称和 .sig.md5.sha 扩展名。原始文件保持不变,因此可用于任何文件格式。

一些文件格式带有集成的签名协议。 PDF 确实是其中的一个例子:您获取 data 部分的哈希值,并将其写入文件中的特殊位置。任何能够处理此文件的软件都必须知道签名功能并控制它或至少忽略它。其他基于 zip 存档的文件格式可以简单地将签名添加为 zip 的新组件。对于 NTFS 文件,您还可以添加一个新的流来包含签名,但是您将无法再在非 NTFS 支持下传输它,除了 Windows 文件副本之外,也无法传输它,因为普通协议仅处理 NTFS 文件的主流。

TL/DR:最简单的方法是将签名存储在同一文件夹中的不同文件中,名称几乎相同但具有特殊扩展名,例如.sig