M_I*_*shi 3 google-apps-script
我在下面阅读了MD5的解决方案,但我无法理解.
从computeDigest(algorithm,value)byte []获取字符串表示
我想用HMAC-SHA256哈希创建API签名.
var date = new Date();
var nonce = Math.floor(date.getTime()/1000);
var url = "https://mysweet.com/api/accounts"
var secret = "my_secret";
var signature = Utilities.computeHmacSha256Signature(nonce+url, secret);
Run Code Online (Sandbox Code Playgroud)
但它返回字节数组[42,-8,-47,-21,..],它不能直接用作API签名.有没有一种从方法中获取Hex值的简单方法?还是转换?
我应用了您链接的方法并得到:
var sig = signature.reduce(function(str,chr){
chr = (chr < 0 ? chr + 256 : chr).toString(16);
return str + (chr.length==1?'0':'') + chr;
},'');;
Run Code Online (Sandbox Code Playgroud)
所以这是一个测试功能:
function testSig() {
var date = new Date();
var message = "Violets are red";
var secret = "my_secret";
var signature = Utilities.computeHmacSha256Signature(message, secret);
var sig = signature.reduce(function(str,chr){
chr = (chr < 0 ? chr + 256 : chr).toString(16);
return str + (chr.length==1?'0':'') + chr;
},'');
Logger.log(sig); // fe70fa2e74b3ee0d67aa3c1d5c2844e558fea6802e8cfa58e5d4cbdf8bad25fe
//output from http://www.freeformatter.com/hmac-generator.html#ad-output is:
// fe70fa2e74b3ee0d67aa3c1d5c2844e558fea6802e8cfa58e5d4cbdf8bad25fe
}
Run Code Online (Sandbox Code Playgroud)
加上高尔夫:
Utilities.computeHmacSha256Signature(message, secret)
.map(function(chr){return (chr+256).toString(16).slice(-2)})
.join('')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1499 次 |
| 最近记录: |