java - 如何为文件添加签名?

标签 java file digital-signature

<分区>

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

我已经实现了其中的大部分,文件读取、算法、 key 计算,例如

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

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

希望尽快得到答案

最佳答案

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

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

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

关于java - 如何为文件添加签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39065766/

相关文章:

VBA 项目上的 Excel 2003 数字签名

c# - 从 RSA key 对获取私钥/公钥 base64 表示

java - 替换字符串中的最后一个逗号

Python 0xff 字节

java - Eclipse 找不到文件?

linux - 如何在linux命令中替换多个文件中的字符串

oauth - 如何查看 Postman 在发出 OAuth 请求时使用的原始签名?

java - 带数组的点积

java - final 和非 final 方法参数,它们在确定方法重载或覆盖时是否被视为不同?

java - 为什么 editText 中的文本没有水平居中?