如何将 CryptoJS 结果作为 hash_hmac PHP (SHA1)
How to get CryptoJS result as hash_hmac PHP (SHA1)
尝试使用 CryptoJS 库从带有 UTF8 密码的 UTF8 字符串生成 JS 上的 HMAC。喜欢 PHP hash_hmac('sha1','...','...',true);
PHP :
$buf = ' accept';
$bufferedSecret = '��xDx�����4�J�?)#';
hash_hmac('sha1', $buf, $bufferedSecret, false);
/* d301cae776ed8c5d46ac93bd7441b01af4d1b888 */
hash_hmac('sha1', $buf, $bufferedSecret, true);
/* ���v�]F���tA��Ѹ� */
JavaScript :
var buf = ' accept';
var bufferedSecret = '��xDx�����4�J�?)#';
CryptoJS.HmacSHA1(buf, bufferedSecret).toString();
/* d301cae776ed8c5d46ac93bd7441b01af4d1b888 */
var forBase64 = CryptoJS.HmacSHA1(buf, bufferedSecret);
CryptoJS.enc.Base64.stringify(forBase64);
/* 0wHK53btjF1GrJO9dEGwGvTRuIg= */
如何在 JS 上获取相同的 HMAC(SHA1) UTF8 值?
UTF8 缓冲区
您可以使用 toString 方法在 JavaScript 中获取您的 Buffer 并将其转换为 UTF-8;确保在参数中指定了哪种格式,合适的值是 hex
和 utf8
,阅读更多 here.
var buf = ' accept';
var bufferedSecret = '��xDx�����4�J�?)#';
CryptoJS.HmacSHA1(buf, bufferedSecret).toString('utf8');
我找到了获取 UTF-8 RAW 的方法。
从这里使用 "convertWordArrayToUint8Array()":
https://gist.github.com/getify/7325764
然后解码它。
var wordArr = CryptoJS.HmacSHA1(buf, bufferedSecret);
var utf8Arr = convertWordArrayToUint8Array(wordArr);
var string = new TextDecoder('utf-8').decode(utf8Arr);
尝试使用 CryptoJS 库从带有 UTF8 密码的 UTF8 字符串生成 JS 上的 HMAC。喜欢 PHP hash_hmac('sha1','...','...',true);
PHP :
$buf = ' accept';
$bufferedSecret = '��xDx�����4�J�?)#';
hash_hmac('sha1', $buf, $bufferedSecret, false);
/* d301cae776ed8c5d46ac93bd7441b01af4d1b888 */
hash_hmac('sha1', $buf, $bufferedSecret, true);
/* ���v�]F���tA��Ѹ� */
JavaScript :
var buf = ' accept';
var bufferedSecret = '��xDx�����4�J�?)#';
CryptoJS.HmacSHA1(buf, bufferedSecret).toString();
/* d301cae776ed8c5d46ac93bd7441b01af4d1b888 */
var forBase64 = CryptoJS.HmacSHA1(buf, bufferedSecret);
CryptoJS.enc.Base64.stringify(forBase64);
/* 0wHK53btjF1GrJO9dEGwGvTRuIg= */
如何在 JS 上获取相同的 HMAC(SHA1) UTF8 值?
UTF8 缓冲区
您可以使用 toString 方法在 JavaScript 中获取您的 Buffer 并将其转换为 UTF-8;确保在参数中指定了哪种格式,合适的值是 hex
和 utf8
,阅读更多 here.
var buf = ' accept';
var bufferedSecret = '��xDx�����4�J�?)#';
CryptoJS.HmacSHA1(buf, bufferedSecret).toString('utf8');
我找到了获取 UTF-8 RAW 的方法。
从这里使用 "convertWordArrayToUint8Array()": https://gist.github.com/getify/7325764 然后解码它。
var wordArr = CryptoJS.HmacSHA1(buf, bufferedSecret);
var utf8Arr = convertWordArrayToUint8Array(wordArr);
var string = new TextDecoder('utf-8').decode(utf8Arr);