Warm tip: This article is reproduced from serverfault.com, please click
itext java pdf

java-使用iText签名字段(数字签名与电子签名图像)

(java - With iText Signature Fields (digital signature vs electronic signature image))

发布于 2020-12-07 14:50:59

我正在尝试从文档中读取签名,我从itext(和Adobe Reader)中看到了不同的签名类型。我可以阅读带有证书等的数字签名。请参见下面的代码。但是我也看到可填充的PDF中出现的签名类型……似乎是一张图像,我认为它只是电子签名。如何读取签名(或可能是图像)以提取该签名数据?它会作为图像出现吗,该签名类型是否有任何元数据?

这是我尝试过的代码,但显示为空,

    AcroFields fields = reader.getAcroFields();
    ArrayList<String> names = fields.getSignatureNames();
Questioner
Berlin Brown
Viewed
0
Original
English
mkl 2020-12-09 00:16:37

一般来说

PDF规范ISO 32000-2中指定的唯一种类的签名是认证签名,批准签名,文档时间戳和使用权签名。使用权签名只是与Adobe Reader交流的一种手段,它应启用某些通常不活动的功能;它们不是由用户创建的,也不是作为用户签名验证的。因此,让我们忽略它们。

认证签名,批准签名和文档时间戳存储在AcroForm签名字段中,你可以使用代码检索使用可互操作签名填写(签名)的签名字段。

因此,你在查看PDF时识别出的其他“签名”是

  • 要么不能互操作,但至少要按照规范签名,
  • 否则它们甚至都不是根据规范的签名,
  • 或PDF损坏导致iText无法识别签名。

在这两种情况下,都没有通用的方法来找到它们的签名相关信息并对其进行解释。你必须分析PDF中低级数据的确切性质,甚至可能必须要求签名的创建者提供足够的信息(规范,解密材料等)才能进行分析。

在你的示例文件中

在你共享的示例文件的情况下,存在混合情况(正如Lonzak在我撰写本文时已经解释的那样):

  • 它具有6个空(无符号)签名字段。

  • 它具有两个带有涂鸦的位图,这些位图大致位于两个签名表单字段的区域中。

    截屏

因此,这些位图图像不会填充任何AcroForm表单字段。实际上,它们根本不代表任何动态内容,它们是静态页面内容的一部分。

但是,根据你当地的法规,这些位图仍可被视为具有法律约束力(尽管易于否认)的签名。因此,确实可能需要提取那些涂鸦,即使它们没有填写正式的AcroForm表单字段。

为此,你必须将图像提取(带有坐标)应用于PDF。要确定哪个位图用于哪个原因,可以将这些坐标与6个空签名字段的坐标进行比较。

此外,用于添加这些涂鸦的Adobe软件甚至使用自定义标签特别标记了添加的内容:

/ADBE_FillSign BMC
q
0 Tc
0 Tw
0 g
0 G
1 w
/GS2 gs
/T1_0 1 Tf
/Fm0 Do
Q
EMC

因此,在自定义代码中查找像这样的签名图像,你只需要查找在标记为ADBE_FillSign的内容内部引用的图像但是,显然,这将你的代码限制为使用Adobe软件添加的草签名...

进一步的问题

在评论中,你询问了后续问题。

对于推荐使用文档的“客户”,建议的方法是什么。他们通常会使用Mac Preview或Adobe Reader ...进行签名。例如,他们应该使用“文本”签名吗?

这首先是一个法律问题;你应该询问你的法律部门或外部律师,哪种电子签名在你的用例中可以使用,哪些不能使用。然后,你可以从可接受的签名类型中选择愿意在软件中支持的签名,并要求你的客户使用它们中的任何一个。

由于我没有Mac,因此没有Mac Preview的动手经验。但是,在过去几年中它在许多问题中的作用表明它不是一个非常忠实的观察者。因此,我在这里不推荐它。但是也许与此同时它已经提高了实用性。

当前的Adobe Reader版本应该足够真实,值得推荐。但是不要忘了清楚地描述如何正确使用它进行签名。

此外,多个人可以进行数字签名吗?

PDF可互操作,支持串行数字签名。即,第一个签名者对PDF进行签名,然后将带有签名的PDF转发给下一个签名者,后者将使用已经签名的PDF签名并转发,依此类推,以此类推,直到最后一个签名者签名,并且你得到所有​​签名者签名的PDF 。

多个签名者无法进行并行数字签名的互操作性。也就是说,他们不能都对原始的未签名的PDF签名,并且期望他们的签名可以以某种方式合并到单个PDF中,并填写所有签名。

经过验证的签名会是什么样子,我可以有多个签名吗?

(只能验证数字签名,不能验证任意数字签名。因此,我假设你在此处引用的是数字签名。)

文档中数字签名的可视化外观是完全自定义的,并取决于签名者。

Adobe Reader在左侧的“签名”面板上显示有关数字签名的信息,例如,像这样(此屏幕快照以意大利语进行了本地化;你更有可能以英语查看它)

绿色复选标记和文本说明了签名的验证状态。

有一些方法可以构造数字签名字段,以便Adobe Reader在文档的签名中显示验证复选标记,例如:

不过,你不应该这样做。自十多年前的Adobe Acrobat 6起已不推荐使用此功能,并且当前的PDF标准ISO 32000-2禁止使用此功能。

哆哆女性网网站网页制作怎么样周公解梦在线解梦男孩的英文名字起生辰 周易企业品牌网站建设公司姓任 男孩起名字给小孩起名的公司seo之关键词布局情侣代号起名永城牌坊街美容养生店面起名网站美工设计教程婉君电视剧616电影天堂河南省永城市是哪个市起名专家起名四川黑竹沟未解之谜宁陵事件生日卡片制作网站李宝宝起名字大全集奇事怪事未解之谜周易八字测名打分免费测试网站优化大约多少钱呢女孩子缺水木起名大全个人怎样建设网站建设好的读后感桥式起重机厂家国内排名周公解梦见要钱密钥签名烘焙店起名大全大全淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻不负春光新的一天从800个哈欠开始有个姐真把千机伞做出来了国产伟哥去年销售近13亿充个话费竟沦为间接洗钱工具重庆警方辟谣“男子杀人焚尸”男子给前妻转账 现任妻子起诉要回春分繁花正当时呼北高速交通事故已致14人死亡杨洋拄拐现身医院月嫂回应掌掴婴儿是在赶虫子男孩疑遭霸凌 家长讨说法被踢出群因自嘲式简历走红的教授更新简介网友建议重庆地铁不准乘客携带菜筐清明节放假3天调休1天郑州一火锅店爆改成麻辣烫店19岁小伙救下5人后溺亡 多方发声两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#青海通报栏杆断裂小学生跌落住进ICU代拍被何赛飞拿着魔杖追着打315晚会后胖东来又人满为患了当地回应沈阳致3死车祸车主疑毒驾武汉大学樱花即将进入盛花期张立群任西安交通大学校长为江西彩礼“减负”的“试婚人”网友洛杉矶偶遇贾玲倪萍分享减重40斤方法男孩8年未见母亲被告知被遗忘小米汽车超级工厂正式揭幕周杰伦一审败诉网易特朗普谈“凯特王妃P图照”考生莫言也上北大硕士复试名单了妈妈回应孩子在校撞护栏坠楼恒大被罚41.75亿到底怎么缴男子持台球杆殴打2名女店员被抓校方回应护栏损坏小学生课间坠楼外国人感慨凌晨的中国很安全火箭最近9战8胜1负王树国3次鞠躬告别西交大师生房客欠租失踪 房东直发愁萧美琴窜访捷克 外交部回应山西省委原副书记商黎光被逮捕阿根廷将发行1万与2万面值的纸币英国王室又一合照被质疑P图男子被猫抓伤后确诊“猫抓病”

哆哆女性网 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化