python - 如何在 Python 中生成字符串的数字签名?

标签 python digital-signature

我有一个字符串,我需要使用我的私钥为它生成一个数字签名?我怎样才能在 Python 中做到这一点?

最佳答案

您可以使用 Cryptography模块到 generate a private key然后 sign your string使用 RSA:

# Generate a private key   
>>> from cryptography.hazmat.backends import default_backend
>>> from cryptography.hazmat.primitives.asymmetric import rsa
>>> private_key = rsa.generate_private_key(
...     public_exponent=65537,
...     key_size=2048,
...     backend=default_backend()
... )

# Sign a message using the key
>>> from cryptography.hazmat.primitives import hashes
>>> from cryptography.hazmat.primitives.asymmetric import padding
>>> message = b"A message I want to sign"
>>> signature = private_key.sign(
...     message,
...     padding.PSS(
...         mgf=padding.MGF1(hashes.SHA256()),
...         salt_length=padding.PSS.MAX_LENGTH
...     ),
...     hashes.SHA256()
... )

如果您已经有了想要使用的私钥,那么您可以 load it而不是生成一个新的。

关于python - 如何在 Python 中生成字符串的数字签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48240551/

相关文章:

java - EC 签名大小?

security - 如何使用时间戳安全地签署数据?

python - 计算平均成绩不会成功

python - 在应用程序之间共享套接字有什么好处?

Python 多处理实现简单计数器的简便方法?

java - RSA 签名异常 : Signature length not correct

java - DSSException : Revocation data is missing

python - 如何/何时使用 Boto 库计算 s3 上传的 md5 哈希

python - 如何用Python中字典中的键替换列表中的项目

java - 分离 XAdES 中嵌入的文件