如何将签名添加到文件?

时间:2016-08-21 15:17:56

标签: java file digital-signature

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

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

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

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

希望得到快速答案

1 个答案:

答案 0 :(得分:2)

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

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

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