PHP 和 Javascript sha256 值不匹配
Posted
技术标签:
【中文标题】PHP 和 Javascript sha256 值不匹配【英文标题】:PHP and Javascript sha256 value not matching 【发布时间】:2022-01-16 11:12:47 【问题描述】:php
$apiKey='1DxhT7xiQPcliOnWLO/IOf74VqwxCCohJAhf8AE4TzmyAUqPawKEOQOKBMEu3Cqnbm1DJTbNje//J8W4QqU83Zg==';
$hashValue=(hash_hmac(
'sha256',
'orgID=6197bf9239fef3001b9241c2&userIdentifier=2717&isCorporate=true',
utf8_decode($apiKey)
));
//Value is : 787a88e590659ea889a8081b35043a9a5fb092af7e69736920c96109dc511182
JS
const CryptoJS = require('crypto-js');
const secret = 'DxhT7xiQPcliOnWLO/IOf74VqwxCCohJAhf8AE4TzmyAUqPawKEOQOKBMEu3Cqnbm1DJTbNje//J8W4QqU83Zg==';
const hmac = CryptoJS.HmacSHA256(
'orgID=6197bf9239fef3001b9241c2&userIdentifier=2717&isCorporate=true',
secret
);
const hash = hmac.toString(CryptoJS.enc.Hex); //_HMAC_Hash_asHex_
console.log(hash);
//Value is : 2f577ba975be5f76df586f5536bf9c0ae8328a90de2a60d8be8bef29aea5f4c5
【问题讨论】:
您的$apiKey
和secret
值不匹配。
您的 $apiKey
与 secret
不匹配:$apiKey='1DxhT7...
与 secret = 'DxhT7...
。此外,utf8_decode
在那里完全没有意义。
【参考方案1】:
你的 $apiKey 和const secret
不同。请检查
$apiKey='1DxhT7xiQPcliOnWLO/IOf74VqwxCCohJAhf8AE4TzmyAUqPawKEOQOKBMEu3Cqnbm1DJTbNje//J8W4QqU83Zg==';
const secret = 'DxhT7xiQPcliOnWLO/IOf74VqwxCCohJAhf8AE4TzmyAUqPawKEOQOKBMEu3Cqnbm1DJTbNje//J8W4QqU83Zg==';
【讨论】:
以上是关于PHP 和 Javascript sha256 值不匹配的主要内容,如果未能解决你的问题,请参考以下文章