使用谷歌Closure-Library时遇到以下问题。
var temp = "ks/ZUl6L5v77y7BHymYrFw===="; //sample string
var decoded = goog.crypt.base64.decodeStringToByteArray(temp);
var sha512 = new goog.crypt.Sha512();
sha512.update(decoded);
//Error: message must be a byte array
更改字符串会使代码运行:
var temp1 = "heyeveryone"; //sample string
var decoded1 = goog.crypt.base64.decodeStringToByteArray(temp1);
var sha512 = new goog.crypt.Sha512();
sha512.update(decoded1);
//fine...
当看到'decoding'和'decoding1'值时,两者看起来都像是字节数组。
解码 [146,207,217,82,94,139,230,254,251,203,176,71,202,102,43,23,260]
decoded1 [133,236,158,189,234,242,162,119]
那么,这里的问题是什么?为什么'decode1'有效并且'解码'不是?
谢谢!
答案 0 :(得分:1)
第一个数组不一个字节数组 - 260
(最终值)不是字节值。确保您的编码值不超过255
。