按照我下面的寫法哈:
const?crypto?=?require('crypto');function?sig()
{
var?strMobile?=?"這裏是我的手機";?//tel的mobile字段的內容
var?strAppKey?=?"這裏是我的key";?//sdkappid對應的appkey,需要業務方高度保密
var?strRand?=?"7226249334";?//url中的random字段的值
var?strTime?=?"1457336869";?//unix時間戳
var?buf?=?"appkey="+strAppKey+"&random="+strRand+"&time="
+strTime+"&mobile="+strMobile;
var?sig?=?crypto.createHash('sha256').update(buf,?'utf-8').digest('hex');
return?sig;
}
console.log(sig());
輸出結果如下:
7b1e97051886abdbd66c684530db2ba01644f828f31e06d624d88aff5469faa0原因就是文檔裏面強調了編碼要使用 utf-8,而 js 默認編碼不是這個,所以需要強制指定下。
另外這個 sig 的計算結果是和妳的輸出參數有關的,並不是不變的。
還有就是妳的 mobile 和 appkey 怎麽傳遞的都是中文,官方給的貌似都是數字和字母呃。