簡體   English   中英

相當於 PHP 中 hash_hmac 的 Python

[英]Python equivalent of hash_hmac in PHP

我想將以下 php 代碼轉換為 python

"<?php echo(strtoupper(hash_hmac('SHA256', $hashinput, pack('H*',$securesecret)))); ?>"

這就是我想出的

base64.b64encode(hmac.new(bytearray(securesecret.upper(), "ASCII") bytearray(hashInput.rstrip('&'),"ASCII") , hashlib.sha512).digest())).decode("ASCII").replace("\n", "").upper())

但它不起作用?

您的代碼中有許多語法錯誤(忘記逗號、括號不連貫等)。 將代碼拆分成行,以便您可以正確開發它:

my_secure = bytearray(securesecret.upper(), "ASCII")
my_input = bytearray(hashInput.rstrip('&'),"ASCII")
my_hmac = hmac.new(my_secure, my_input, hashlib.sha512)
my_hmac_digest = my_hmac.digest()

base64.b64encode(my_hmac_digest).decode("ASCII").upper()

然后您可以將其合並為 1 行:

base64.b64encode(hmac.new(bytearray(securesecret.upper(), "ASCII"), bytearray(hashInput.rstrip('&'),"ASCII"), hashlib.sha512).digest()).decode("ASCII").upper()

注意:使用replace("\\n", "")刪除新行是沒有用的, base64.b64encode不會將輸出拆分成行( base64.encodestring會)

暫無
暫無

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

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