Python-эквивалент hash_hmac в переполнении стека

Я хотел бы преобразовать следующий код 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())

Но это не работает?

-2

Решение

В вашем коде было много синтаксических ошибок (забытые запятые, непоследовательность скобок и т. Д.). Разбейте код на строки, чтобы вы могли правильно его разработать:

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 будут)

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector