Javascript 如何将CryptoJS结果作为hash_hmac PHP(SHA1)获取
尝试在JS上使用CryptoJS库从UTF8字符串和UTF8 secret生成HMAC。像PHP hash_hmac('sha1','…','…','…',true) PHP: JavaScript: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
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);