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

时间:2018-01-13 13:55:07

标签: python digital-signature

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

1 个答案:

答案 0 :(得分:2)

您可以使用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而不是生成新密钥。