Как генерировать код подписи NodeJS из hmacsha1 в NodeJS - PullRequest
1 голос
/ 14 мая 2019

timestamp и device_id всегда меняются, когда я запрашиваю функцию для генерации подписи, но хэш подписи все равно

ea6b458e9a840b7f93236244bf1ea7cb564a8f08

этот хэш-генаратный код

let array = [login_type, device_id, timestamp]; let hash = crypto.createHmac('sha1', secret_key).update(implode(array, "|")).digest('hex');

function timeMil(){
    var date = new Date();
    var timeMil = date.getTime();
    return timeMil;
}

const device_id = "2752707c1c745ff8";
const secret_key = "9LXAVCxcITaABNK48pAVgc4muuTNJ4enIKS5YzKyGZ";
const timestamp = timeMil();

let array = [login_type, device_id, timestamp];
let hash = crypto.createHmac('sha1', secret_key).update(implode(array, "|")).digest('hex');

console.log(hash);

Генерированный hash_hmac всегда ea6b458e9a840b7f93236244bf1ea7cb564a8f08

1 Ответ

1 голос
/ 14 мая 2019

В JavaScript нет функции "взрыва";его эквивалент использует join для массива:

const crypto = require('crypto');

function timeMil(){
   return new Date().getTime();
}

const login_type = 'test';
const device_id = "2752707c1c745ff8";
const secret_key = "9LXAVCxcITaABNK48pAVgc4muuTNJ4enIKS5YzKyGZ";
const timestamp = timeMil();

let array = [login_type, device_id, timestamp];
let hash = crypto.createHmac('sha1', secret_key).update(array.join("|")).digest('hex');

console.log(hash);
...