簡體   English   中英

base64 HMAC 與 Python 中的 SHA256

[英]base64 HMAC with SHA256 in Python

我很難創建簽名。

我需要使用帶有 SHA256 的 HMAC 使用 Checkout Request JSON 和密鑰進行簽名。 我需要通過連接簽名、pipe 字符 (|) 和 Checkout Request JSON 然后用 BASE64 對其進行編碼來做到這一點。

這是我在文檔中找到的公式:

$signed_checkout_request = base64( hmac_sha256( $checkout_request, $private_key ) + "|" + $checkout_request )

我是根據一些在線代碼制作的:

    import hashlib
    import hmac
    import base64

    checkout_request = '{"charge":{"amount":499,"currency":"EUR"}}'.encode('utf-8');
    private_key = b'44444444444';
    digest = hmac.new(private_key, msg=checkout_request, digestmod=hashlib.sha256).digest()

    signature = base64.b64encode(digest).decode()

但是我不確定如何獲得“|” 進去。 老實說,我也不確定我是否走在正確的軌道上……我在這部分沒有太多經驗,而且我在谷歌搜索上也失敗了。

private_key = 'blahblahblah'

checkout_request = json.dumps({"charge":{"amount":4999,"currency":"EUR"}}, sort_keys=True, separators=(",", ":"))

digest = hmac.new(private_key.encode(), msg=checkout_request.encode(), digestmod=hashlib.sha256,).hexdigest()

signature = base64.b64encode((digest + "|" + checkout_request).encode()).decode()

我能夠讓它與它一起工作:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM