Hướng dẫn javascript hmac sha256 hex digest - javascript hmac sha256 thông báo hex

Tôi đang cố gắng viết một LIB JavaScript để đẩy các sự kiện đến Pizer.

Trong môi trường tôi đang sử dụng, tôi không thể sử dụng nodejs, vì vậy không yêu cầu ('tiền điện tử') ... hoặc ít nhất tôi không biết cách sử dụng nút bên ngoài.

Tôi đang làm theo hướng dẫn ví dụ ở đây: http://pusher.com/docs/rest_api;Tôi bị mắc kẹt trong phần mà nó nói rằng tôi nên tạo ra HMAC SHA256 hex Digest.

Tôi đang sử dụng thư viện này http://code.google.com/p/crypto-js/#hmac

Vì vậy, làm theo các hướng dẫn về Pusher tôi đã viết

CryptoJS.HmacSHA256(
  'POST\n/apps/3/channels/project-3/events\nauth_key=278d425bdf160c739803&auth_timestamp=1272044395&auth_version=1.0&body_md5=7b3d404f5cde4a0b9b8fb4789a0098cb&name=foo',
  '7ad3773142a6692b25b8'
);

Nhưng đó là cho tôi

function getAppSecretPath(authData, options = {}) {
 const appSecret = options.appSecret;
 if (!appSecret) {
  return '';
 }
 const appsecret_proof = crypto
  .createHmac('sha256', appSecret)
  .update(authData.access_token)
  .digest('hex');

 return `&appsecret_proof=${appsecret_proof}`;
}
4 thay vì
function getAppSecretPath(authData, options = {}) {
 const appSecret = options.appSecret;
 if (!appSecret) {
  return '';
 }
 const appsecret_proof = crypto
  .createHmac('sha256', appSecret)
  .update(authData.access_token)
  .digest('hex');

 return `&appsecret_proof=${appsecret_proof}`;
}
5.

Điều làm phiền tôi là tôi đã không làm phần "hex digest", vì vậy có lẽ đó là những gì tôi thiếu, nhưng tôi không thể tìm thấy một lib phù hợp để làm điều này trong JavaScript.Bạn có phát hiện ra bất kỳ lỗi nào trong những gì tôi đã làm không?Bạn có một thư viện để đề xuất?

Cảm ơn trước sự giúp đỡ nào.

Cách sử dụng

tiêu

function

in

Đoạn mã JavaScript tốt nhất bằng crypto.hmac.digest (hiển thị 15 kết quả hàng đầu trong số 801)digest(Showing top 15 results out of 801)

function getAppSecretPath(authData, options = {}) {
 const appSecret = options.appSecret;
 if (!appSecret) {
  return '';
 }
 const appsecret_proof = crypto
  .createHmac('sha256', appSecret)
  .update(authData.access_token)
  .digest('hex');

 return `&appsecret_proof=${appsecret_proof}`;
}




 HMAC(key, data) {
  return crypto
   .createHmac(this.digestDefinition.type, key)
   .update(data)
   .digest()
 }

api.post('/hook', function (req, res) {
 var signature = req.get('X-PDF-Signature', 'sha1=')

 var bodyCrypted = require('crypto')
  .createHmac('sha1', '12345')
  .update(JSON.stringify(req.body))
  .digest('hex')

 if (bodyCrypted !== signature) {
  res.status(401).send()
  return
 }

 console.log('PDF webhook received', JSON.stringify(req.body))

 res.status(204).send()
})



const verifyGitHubSignature = (req = {}, secret = '') => {
 const sig = _.get(req.headers, 'x-hub-signature', null);
 const hmac = crypto.createHmac('sha1', secret);
 const digest = Buffer.from('sha1=' + hmac.update(JSON.stringify(req.body)).digest('hex'), 'utf8');
 const checksum = Buffer.from(sig, 'utf8');
 if (checksum.length !== digest.length || !crypto.timingSafeEqual(digest, checksum)) {
  return false;
 } else {
  return true;
 }
}

const hmacSHA1 = (key: string, data: string) => {
  
  
  return crypto.createHmac('sha1', key).update(data).digest().toString('base64');
}

function generateSignature (payload, key) {
 return crypto.createHmac('sha1', key).update(payload).digest('hex')
}

let rawBody = req.rawBody;
let hash = crypto.createHmac('sha256', LINE_CHANNEL_SECRET).update(
  rawBody).digest('base64');

  const hmac = crypto.createHmac('sha256', secret);
  hmac.update(body);
  return hmac.digest('hex');
};

getSignature(method, time, endpoint, params) {
  method = method.toUpperCase();
  const paramStr = method === 'GET' ? Utils.getQueryString(params) : JSON.stringify(params);
  const sign = method === 'GET' ? '?' : '';
  const totalStr = [`${time}${method}/api/${endpoint}`, paramStr].filter(d => d).join(sign);
  return crypto.createHmac('sha256', this.apiSecret).update(totalStr).digest('base64');
 }

function getAppSecretPath(authData, options = {}) {
 const appSecret = options.appSecret;
 if (!appSecret) {
  return '';
 }
 const appsecret_proof = crypto
  .createHmac('sha256', appSecret)
  .update(authData.access_token)
  .digest('hex');

 return `&appsecret_proof=${appsecret_proof}`;
}
0

function getAppSecretPath(authData, options = {}) {
 const appSecret = options.appSecret;
 if (!appSecret) {
  return '';
 }
 const appsecret_proof = crypto
  .createHmac('sha256', appSecret)
  .update(authData.access_token)
  .digest('hex');

 return `&appsecret_proof=${appsecret_proof}`;
}
1

function getAppSecretPath(authData, options = {}) {
 const appSecret = options.appSecret;
 if (!appSecret) {
  return '';
 }
 const appsecret_proof = crypto
  .createHmac('sha256', appSecret)
  .update(authData.access_token)
  .digest('hex');

 return `&appsecret_proof=${appsecret_proof}`;
}
2



const verifyGitHubSignature = (req = {}, secret = '') => {
 const sig = _.get(req.headers, 'x-hub-signature', null);
 const hmac = crypto.createHmac('sha1', secret);
 const digest = Buffer.from('sha1=' + hmac.update(JSON.stringify(req.body)).digest('hex'), 'utf8');
 const checksum = Buffer.from(sig, 'utf8');
 if (checksum.length !== digest.length || !crypto.timingSafeEqual(digest, checksum)) {
  return false;
 } else {
  return true;
 }
}