1)我看到有些人在PDF对象之间隐藏数据。 他们告诉说这种方法有效,但最大的缺点是acrobat reader在关闭窗口时要求重新保存文件。
我不明白他们在隐藏PDF对象之间的信息意味着什么。 我需要你的帮助:))
2)我还看到有人在%% EOF之后隐藏信息,并被告知这不是解决方案,因为签名不适用于需要功能的元数据。
此外,我不明白它们对本主题中元数据的含义是什么?
我参考了这个链接How to hide text in an PDF file?
致以最诚挚的问候,
李斯特。
答案 0 :(得分:3)
1)我看到有些人在PDF对象之间隐藏数据。他们告诉说这种方法有效,但最大的缺点是acrobat reader在关闭窗口时要求重新保存文件。
我不明白它们在隐藏PDF对象之间的信息意味着什么。
通常,您的PDF是一系列PDF对象,其前面是识别数字,以及将这些数字映射到它们在PDF中的位置的交叉引用:
...
2 0 obj
/WinAnsiEncoding
endobj
3 0 obj
<<
/Type /Font
/Subtype /Type1
/BaseFont /Courier
/Name /F001
/Encoding 2 0 R
>>
endobj
4 0 obj
<<
/Type /Font
/Subtype /Type1
/BaseFont /Courier-Bold
/Name /F002
/Encoding 2 0 R
>>
....
xref
0 17
0000000000 65535 f
0000014476 00000 n
0000000017 00000 n
0000000052 00000 n
0000000205 00000 n
...
当PDF解析器解析一个对象(例如对象 2 )时,它们通常只查找交叉引用中的关联值(对于对象2,它的 17 )并开始在字节17处读取文件,首先期望对象和世代号( 2 0 ),然后标记 obj ;他们会在该标记之后解析所有匹配的 endobj 标记,然后停止。 (实际上在某些情况下它会更加扭曲,但这是一般的想法。)
因此,有些人认为在一个PDF对象的 endobj 和下一个PDF对象的对象编号之间添加他们的秘密数据是个好主意,如下所示:
2 0 obj
/WinAnsiEncoding
endobj
HERE ARE MY VERY SECRET VERY HIDDEN DATA, PROBABLY ENCRYPTED ETC
3 0 obj
现在一些PDF阅读器确实认识到有一些垃圾字节并提供保存文件而没有它们。
2)我还看到有人在%% EOF之后隐藏信息并被告知这不是解决方案,因为签名不适用于需要功能的元数据。
大多数PDF阅读器在标记之后忽略了一些垃圾数据,因为在一段时间内,一些PDF生成或传输过程在那里留下了一些额外的垃圾。
...
%%EOF
AGAIN SOME SECRET DATA
当他们自己操纵PDF时,例如,在签名时,PDF阅读器可能会继续按照PDF规范丢弃所有不存在的内容。或者在签名的情况下,他们可以将尾随字节留在原来的位置,然后在它们之后集成签名。一些程序期望文件末尾的那些额外数据可能在之后找不到它们,因为它们现在在某个地方。
此外,我不明白它们对本主题中元数据的含义是什么?
有些人实际上使用此类机制来添加后续处理步骤中所需的信息。例如。创建一些PDF发票的过程可以添加发送PDF的地址以及在文件末尾支付的金额,然后再处理PDF,例如,审核或存档,并在一些最终过程中发送给收件人。
审核步骤可能会根据最后添加的金额进行不同的处理;也许价值超过1000美元的销售必须由特殊的个人清算。
发送过程还可以在文件结束后使用额外数据将文件发送给收件人。
有关某些文档的此类数据有时称为元数据。