@bigorat
Спасибо помогло )))
Как правильно выполнить код БАСе
-
Здравствуйте.
Мне нужно сгенерировать определенное Значение, для передачи его в GET запросе(обращение по API) - назвем Signature.
Signature: an HMAC-SHA1 hash of your Access ID, the Expires parameter, and your Secret Key. The secure hash must be base64 encoded then URL-encoded before Mozscape accepts the signature as valid. - Это как описывается в инструкции. Есть код на джаваскрипте, который можно использовать. Полный код есть здесь https://github.com/seomoz/SEOmozAPISamples/blob/master/javascript/node/batching-urls-sample.js
Но приведу часть, чтобы кто-то объяснил что нужно делать :
'use strict';var crypto = require('crypto');
var http = require('http');
var expires = Math.floor((Date.now() / 1000)) + 300;
var accessId = process.env.accessId;
var secretKey = process.env.secretKey;
var cols = "68719476736";
var stringToSign = accessId + "\n" + expires;
var signature = crypto.createHmac('sha1', secretKey).update(stringToSign).digest('base64');
signature = encodeURIComponent(signature);Могу все реализовать с помощью стандартных блоков БАС, пока дело не доходит до программирования, так как не программист, и до этих блоков:
var signature = crypto.createHmac('sha1', secretKey).update(stringToSign).digest('base64');
signature = encodeURIComponent(signature);Пробовал вставить и в пользовательский код и в джаваскрипт но выбивают одни ошибки.
Я так понимаю, что закодировать в Base64 может и БАС, но вот что делать с hmac sha1 понятия не имею.Должен получится в конце такой запрос AccessID=member-cf180f7081&Expires=1225138899&Signature=LmXYcPqc%2BkapNKzHzYz2BI4SXfC%3D
Вот переменную Signature мне как-то нужно получить
Помогите, кто разбирается.
-
@DrPrime Вот подготовил модуль для crypto-js
0_1491991653382_CryptoJs.zip
Нужно его установить и выполнитьCryptoJS.HmacSHA256("Message", "Key")Также эта либа поддерживает кучу других методов. https://www.npmjs.com/package/crypto-js
-
@support
Что то не то)
Выполняю следующий код[[DATA]] = "Hello" [[KEY]] = "qwerty123" [[SIGNATURE]] = CryptoJS.HmacSHA256([[DATA]], [[KEY]])Получаю массив:
sigBytes: 32, words: [ -166834478, 1662242229, -1804389374, -898250840, -593942154, 85902484, 390772387, -1191507454А хотел получить :
f60e4ed26313cdb594733402ca75c7a8dc992976051ec494174ab6a3b8fb0a02взято с http://www.freeformatter.com/hmac-generator.html#ad-output
Как мне это привести к такому виду?