Я хочу HMAC SHA256
хешировать нормализованный запрос, используя секрет клиента, и base64 кодирует результат. Я получаю разные результаты в python
и typeScript
. Моя цель - достичь python
результата в typeScript
. Как это сделать?
Я смог преобразовать hashlib.sha256
( Вот мой подход ) в typeScript
эквивалент, но не уверен насчет hmac.new
Код Python:
import hashlib
import hmac
import base64
request = "Hello World";
secret = "MySecret"
requestBytes = bytes(request.encode('utf-8'))
secretBytes = bytes(secret.encode('utf-8'))
hmacConversion = hmac.new(secretBytes, requestBytes, digestmod=hashlib.sha256).digest()
signature = base64.b64encode(hmacConversion)
print(signature)
Выход:
b'm4nZSWE3Y/tPXToy/0cJMGpR2qpsXgCnF3tsSiZtYt0='
Пример кода
Код машинописного текста:
var secret = "Hello World";
var body = "MySecret";
var hmac = crypto.createHmac("sha256", secret)
.update(Buffer.from(body, 'utf-8'))
.digest('hex');
console.log(hmac);
var hmac2 = crypto.createHmac("sha256", secret)
.update(body, 'utf-8')
.digest('hex');
console.log(hmac2);
Выход:
f1f157335b0982cbba94290163d61582a87352817788b793238817dd631c26d4
Пример кода