gpt4 book ai didi

python - 如何使用python从pdf中提取数字签名?

转载 作者:行者123 更新时间:2023-12-04 04:18:18 37 4
gpt4 key购买 nike

我正在使用 python 3.7,我想从发票 (pdf) 中提取数字签名,然后验证数字签名。我该怎么做...请帮忙我对这个数字签名提取一无所知,需要从头开始。

谢谢

最佳答案

让我们从什么是 DSA 以及它与 MAChash 的区别开始。 数字签名算法提供完整性、身份验证和不可否认性,而消息身份验证代码提供完整性和身份验证,而哈希仅提供正直。

由于您是从头开始,我将包括一些非正式的定义:
完整性 - 当您可以肯定地说没有任何修改时,完整性就得到了保证。
身份验证 - 当您可以验证数据是否来自预期来源时,身份验证就得到了保证。前任。我可以证明汤姆把 PDF 发给我了。
不可否认性 - 当第三方仅给出数据和相关信息(通常是公钥)即可验证数据的完整性和身份验证时,可确保不可否认性。前任。 John 可以确认我向您发送了 pdf。

因此,根据您需要的算法类型,这里有几个示例:

哈希

import hashlib
print(hashlib.sha256(open('file.pdf', 'r').read().encode()).hexdigest())


MAC - HMAC,键控哈希

import hashlib, hmac
print(hmac.digest(b"key", b"message", digest=hashlib.sha256))


DSA - 使用cryptography 包取自here

>>> from cryptography.hazmat.backends import default_backend
>>> from cryptography.hazmat.primitives import hashes
>>> from cryptography.hazmat.primitives.asymmetric import dsa
>>> private_key = dsa.generate_private_key(
... key_size=1024,
... backend=default_backend()
... )
>>> data = b"this is some data I'd like to sign"
>>> signature = private_key.sign(
... data,
... hashes.SHA256()
... )

关于python - 如何使用python从pdf中提取数字签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60088935/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com