使用adbe.pkcs7.0创建签名PDF

使用adbe.pkcs7.0创建签名PDF,pdf,digital-signature,pkcs#7,Pdf,Digital Signature,Pkcs#7,我正在生成这个非常基本的PDF,并尝试对其进行签名。但我错过了一些东西,我能弄清楚是什么,也许你们有个主意。 Acrobat无法识别签名,但会显示: 文档证书的有效性未知。 尝试验证此签名时出错 签名应该没问题。 ByteRange偏移也可以。 所以我只能想到我丢失的一个场或物体(?) %PDF-1.7 %âãÏÓ 10 obj endobj 20 obj endobj 30 obj endobj 40 obj endobj 50 obj endobj 60 obj 流动 100RG 25 50

我正在生成这个非常基本的PDF,并尝试对其进行签名。但我错过了一些东西,我能弄清楚是什么,也许你们有个主意。 Acrobat无法识别签名,但会显示:

文档证书的有效性未知。 尝试验证此签名时出错

签名应该没问题。 ByteRange偏移也可以。 所以我只能想到我丢失的一个场或物体(?)

%PDF-1.7
%âãÏÓ
10 obj
endobj
20 obj
endobj
30 obj
endobj
40 obj
endobj
50 obj
endobj
60 obj
流动
100RG
25 50 re
F
尾流
endobj
外部参照
0 7
0000000000 65535 f
00000001900万元
0000000137000000N
000000018800000N
000000 3544 00000 n
000000364900000N
000000379300000N
拖车
起始外部参照
3868
%%EOF

欢迎任何提示

文件中至少有两个错误

不正确的ByteRange ByteRange中的间隙仅包含签名值的十六进制数字

308204db...00000000
但它应该包含整个十六进制字符串,包括它的分隔符、尖括号

<308204db...00000000>
这在两个方面是不正确的:

  • 首先,若日期对象中的小时和分钟都有时区偏移,那个么它们必须用撇号分隔。因此,

    (D:20201022075138+00'00)
    
  • 此外,“+”号保留用于正时区偏移;对于零偏移,必须使用“Z”。因此,

    (D:20201022075138Z00'00)
    
这是日期对象规范所要求的:

日期应为格式的文本字符串

(D:YYYYMMDDHHmmSSOHH'mm)

作为O字段值的加号表示本地时间晚于UT,连字符-减号表示本地时间早于UT,拉丁文大写字母Z表示本地时间等于UT



此外,在AcroForm词典中使用SigFlags
3
而不是
1
,可以改善PDF查看器中的用户体验。

文件中至少有两个错误

不正确的ByteRange ByteRange中的间隙仅包含签名值的十六进制数字

308204db...00000000
但它应该包含整个十六进制字符串,包括它的分隔符、尖括号

<308204db...00000000>
这在两个方面是不正确的:

  • 首先,若日期对象中的小时和分钟都有时区偏移,那个么它们必须用撇号分隔。因此,

    (D:20201022075138+00'00)
    
  • 此外,“+”号保留用于正时区偏移;对于零偏移,必须使用“Z”。因此,

    (D:20201022075138Z00'00)
    
这是日期对象规范所要求的:

日期应为格式的文本字符串

(D:YYYYMMDDHHmmSSOHH'mm)

作为O字段值的加号表示本地时间晚于UT,连字符-减号表示本地时间早于UT,拉丁文大写字母Z表示本地时间等于UT



此外,,AcroForm词典中的
3
值而不是
1
将改善PDF查看器中的用户体验。

请将文件的下载链接发布为“复制/粘贴”,从该页面复制/粘贴将生成损坏的PDF文件。@iPDFdev此处作为链接:请将文件的下载链接发布为“复制/粘贴”从该页面复制/粘贴将生成一个损坏的pdf文件。@iPDFdev此处作为链接:谢谢!我以前试过抵消,但日期欺骗了我,永远不会朝那个方向检查。非常感谢。非常感谢。我以前试过抵消,但日期欺骗了我,永远不会朝那个方向检查。非常感谢。