Как конвертировать php hash_hmac в NodeJS - PullRequest
0 голосов
/ 16 октября 2019

Мне нужно конвертировать php hash_hmac в node.js. Я нашел похожие вопросы и ответы, которые пробовал, но я все еще получаю {данные: '', ошибка: 'HMAC не отправлено', успех: ложь}

const params = {
method : "get_issues",
ts : time.toString(),
field_1_name : "id",
field_1_value : 123456,
sort : "status ASC, created DESC"
}

php:

 $mac = hash_hmac("sha512", mac_build_query($params), $PRIVATE_KEY); 

node.js:

let mac = crypto.createHmac("sha512", mac_build_query(params)).update(PRIVATE_KEY).digest().toString('base64') //('base64') //hex

1 Ответ

1 голос
/ 16 октября 2019

В PHP:

hash_hmac ( string $algo , string $data , string $key [, bool $raw_output = FALSE ] ) : string

Пример:

hash_hmac($algo,$data,$key) // return hex string 

В узле: createHmac(algo, key).update(data).digest(encoding)

пример:

 crypto.createHmac('sha512', key).update(data).digest('hex')

ПРИМЕЧАНИЕ. Ключ и данные должны быть строкой.

, если данные являются объектами, затем преобразовать в строку:

let data_json_string = JSON.stringify(data);

Вывод: enter image description here

...