我正在一个项目中,我必须验证数字印章的签名。我们正在从pdf417条码获取数据。数据是从hexa进行base64编码的,然后在卡(如驾驶执照卡)上打印为pdf417。 hexa数据是根据specification的结构。
总而言之,十六进制分为三部分:标头区域,消息区域和签名区域。标头和消息(在某些情况下仅消息区域)使用证书的私钥签名。生成的签名将附加在标题和消息区域的末尾,整体将提供卡的数据。然后,要验证签名,我们使用相应的证书,并将Tez应用于业务验证代码here。
当标头和消息区域(在某些情况下仅消息区域)被签名时,我们只是将它们(全部)从六进制数据中分离出来,然后应用验证算法。问题在于,签名无法通过证书进行验证。我们甚至尝试了hexa数据的许多组合。但是卡上的数据是用与我们拥有的证书相对应的私钥签名的。
几天来我一直在寻找解决方案,但是没有办法。也许我没有尽力验证驾驶执照数据。如果有人有我可以检查的解决方案,我就打开了。
PS:我们正在使用Java,因此首选Java解决方案。也欢迎其他解决方案
我为我的英语道歉