通过 HMAC-SHA1 验证 Python3 上的传入请求
Verifying incoming requests on Python3 by HMAC-SHA1
我需要使用 HMAC-SHA1 验证传入请求。我的主要问题是为它创建基本字符串。 python 是否有任何库可以从请求中生成 base string 并在可能的情况下进行验证?
据我了解,您不是在询问 OAuth 1.0 请求,而是在询问签名和验证功能,对吗?
如果这就是你要问的,我不确定是否有图书馆,但在 Authlib's code, there is a module to do sign and verify signatures: https://github.com/lepture/authlib/blob/master/authlib/oauth1/rfc5849/signature.py
结帐:
- sign_hmac_sha1 https://github.com/lepture/authlib/blob/master/authlib/oauth1/rfc5849/signature.py#L350
def sign_hmac_sha1(client, request):
"""Sign a HMAC-SHA1 signature."""
base_string = generate_signature_base_string(request)
return hmac_sha1_signature(
base_string, client.client_secret, client.token_secret)
- verify_hmac_sha1 https://github.com/lepture/authlib/blob/master/authlib/oauth1/rfc5849/signature.py#L368
def verify_hmac_sha1(request):
"""Verify a HMAC-SHA1 signature."""
base_string = generate_signature_base_string(request)
sig = hmac_sha1_signature(
base_string, request.client_secret, request.token_secret)
return hmac.compare_digest(sig, request.signature)
可以借鉴Authlib代码。但如果你只是想发送 OAuth 1.0 请求,你可以直接使用 Authlib。文档在这里:https://docs.authlib.org/en/latest/client/oauth1.html
我需要使用 HMAC-SHA1 验证传入请求。我的主要问题是为它创建基本字符串。 python 是否有任何库可以从请求中生成 base string 并在可能的情况下进行验证?
据我了解,您不是在询问 OAuth 1.0 请求,而是在询问签名和验证功能,对吗?
如果这就是你要问的,我不确定是否有图书馆,但在 Authlib's code, there is a module to do sign and verify signatures: https://github.com/lepture/authlib/blob/master/authlib/oauth1/rfc5849/signature.py
结帐:
- sign_hmac_sha1 https://github.com/lepture/authlib/blob/master/authlib/oauth1/rfc5849/signature.py#L350
def sign_hmac_sha1(client, request):
"""Sign a HMAC-SHA1 signature."""
base_string = generate_signature_base_string(request)
return hmac_sha1_signature(
base_string, client.client_secret, client.token_secret)
- verify_hmac_sha1 https://github.com/lepture/authlib/blob/master/authlib/oauth1/rfc5849/signature.py#L368
def verify_hmac_sha1(request):
"""Verify a HMAC-SHA1 signature."""
base_string = generate_signature_base_string(request)
sig = hmac_sha1_signature(
base_string, request.client_secret, request.token_secret)
return hmac.compare_digest(sig, request.signature)
可以借鉴Authlib代码。但如果你只是想发送 OAuth 1.0 请求,你可以直接使用 Authlib。文档在这里:https://docs.authlib.org/en/latest/client/oauth1.html