Php 如何在node js中使用hash_hmac函数
最近我在PHP上使用了相同的代码,它工作得很好,但当我尝试Node Js时,它对我不起作用。请检查一下: PHP 节点代码:Php 如何在node js中使用hash_hmac函数,php,node.js,md5,cryptojs,Php,Node.js,Md5,Cryptojs,最近我在PHP上使用了相同的代码,它工作得很好,但当我尝试Node Js时,它对我不起作用。请检查一下: PHP 节点代码: var signature = ACCID+"POST"+encodeURI(url).toLowerCase()+requestContentBase64String; var hmacsignature = base64.encode(crypto.createHmac('sha256', APIKey).update(signature).digest('base
var signature = ACCID+"POST"+encodeURI(url).toLowerCase()+requestContentBase64String;
var hmacsignature = base64.encode(crypto.createHmac('sha256', APIKey).update(signature).digest('base64'))
请检查此代码中的错误 您的第二行有两个错误:
BASE64_DECODE(APIKey)
而在Node.js代码中它只是APIKey
BASE64(十六进制(HMAC))
而在Node.js代码中是BASE64(BASE64(HMAC))
var hmacsignature = crypto.createHmac('sha256', Buffer.from(APIKey, 'base64')).update(signature).digest('base64')
我已经试过你的代码,但它没有给我一样的反应PHP@PriteshMahajan检查更新的代码,如果不匹配,请共享不同的值。请检查我上面的代码:var md5=require('md5');var requestArray=[{“fname”:“mobilenumber”,“fvalue”:“1234568970”},{“fname”:“phone”,“fvalue”:“000000000”}];var post_data=JSON.stringify(requestArray);var m=md5(事后数据);var requestContentBase64String=base64.encode(m);PHP的urlencode和Node.js的encodeURI的行为是不同的。使用类似
var hmacsignature = crypto.createHmac('sha256', Buffer.from(APIKey, 'base64')).update(signature).digest('base64')