我必须在JavaScript中将字符串转换为字节(16位)。我可以在.net中使用以下代码执行此操作,但我必须将此更改为使用JavaScript的旧经典asp App。
string strShared_Key = "6fc2e550abc4ea333395346123456789";
int nLength = strShared_Key.Length;
byte[] keyMAC = new byte[nLength / 2];
for (int i = 0; i < nLength; i += 2)
keyMAC[i / 2] = Convert.ToByte(strShared_Key.Substring(i, 2), 16);
这是JavaScript函数,但不会返回与上面的.net代码相同的输出。
function String2Bin16bit(inputString) {
var str = ""; // string
var arr = []; // byte array
for (var i = 0; i < inputString.length; i += 2) {
// get chunk of two characters and parse to number
arr.push(parseInt(inputString.substr(i, 2), 16));
}
return arr;
}
答案 0 :(得分:1)
您希望parseInt(x, 16)
将x
作为数字读取并解析,因为它位于16位。
var str = "aabbcc"; // string
var arr = []; // byte array
for(var i = 0; i < str.length; i += 2) {
arr.push(parseInt(str.substr(i, 2), 16)); // get chunk of two characters and parse to number
}