Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将CryptoJS结果作为hash_hmac PHP(SHA1)获取_Javascript_Php_Hmac_Cryptojs_Hmacsha1 - Fatal编程技术网

Javascript 如何将CryptoJS结果作为hash_hmac PHP(SHA1)获取

Javascript 如何将CryptoJS结果作为hash_hmac PHP(SHA1)获取,javascript,php,hmac,cryptojs,hmacsha1,Javascript,Php,Hmac,Cryptojs,Hmacsha1,尝试在JS上使用CryptoJS库从UTF8字符串和UTF8 secret生成HMAC。像PHP hash_hmac('sha1','…','…','…',true) PHP: JavaScript: var buf = ' accept'; var bufferedSecret = '��xDx�����4�J�?)#'; CryptoJS.HmacSHA1(buf, bufferedSecret).toString(); /* d301cae776ed8c5d46ac93bd7441b01

尝试在JS上使用CryptoJS库从UTF8字符串和UTF8 secret生成HMAC。像PHP hash_hmac('sha1','…','…','…',true)

PHP:

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中的UTF-8;确保在参数中指定了哪种格式,合适的值是
hex
utf8
,请阅读更多信息


我找到了一种获得UTF-8原材料的方法

在此处使用“ConvertWordArrayOutit8Array()”: 然后解码它

var wordArr = CryptoJS.HmacSHA1(buf, bufferedSecret);
var utf8Arr = convertWordArrayToUint8Array(wordArr);
var string = new TextDecoder('utf-8').decode(utf8Arr);

Was try:
CryptoJS.HmacSHA1(buf,bufferedSecret).toString('utf8')
和get'uncaughttypeerror:(a | | n).stringify不是一个函数'
var buf='accept';var bufferedSecret��xDx�����4.�J�?)#'; var-wordArr=CryptoJS.HmacSHA1(buf,bufferedSecret);CryptoJS.enc.Utf8.stringify(wordArr)
Get:'core.js:435未捕获错误:格式错误的UTF-8数据'
CryptoJS.HmacSHA1(buff,bufferedSecret).toString()将提供UTF8输出,请参阅
var buf = ' accept';
var bufferedSecret = '��xDx�����4�J�?)#';

CryptoJS.HmacSHA1(buf, bufferedSecret).toString('utf8');
var wordArr = CryptoJS.HmacSHA1(buf, bufferedSecret);
var utf8Arr = convertWordArrayToUint8Array(wordArr);
var string = new TextDecoder('utf-8').decode(utf8Arr);