您的位置:首页 > Web前端 > JavaScript

JS code do conversion between hexStr and byteArray

2015-05-20 00:51 381 查看
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title> Online Cryptographic Calculator</title>

</head>

<input style="width:80%" id="input" value="12-AB">

<input type="button" value="Calculate" onclick="output.value=buttonHandler(input.value)">

<textarea style="width:80%" rows=10 id=output></textarea>

<script>

/* Convert a hex char to value */

function hexChar2byte(c)

{

  var d = 0;

  if (c>='A' && c<='F')

  {

    d = c.charCodeAt(0) - 'A'.charCodeAt(0) + 10;

  }

  else if (c>='a' && c<='f')

  {

    d = c.charCodeAt(0) - 'a'.charCodeAt(0) + 10;

  }

  else if (c>='0' && c<='9')

  {

    d = c.charCodeAt(0) - '0'.charCodeAt(0);

  }

  return d;

}

/* Check if a char is hex char */

function isHexChar(c)

{

  if ((c>='A' && c<='F') ||

      (c>='a' && c<='a') ||

      (c>='0' && c<='9'))

  {

    return 1;

  }

  return 0;

}

/* Convert HEX string to byte array */

function hexStr2byteArray(str)

{

  var byteArray = Array();

  var d = 0;

  var i = 0;

  var j = 0;

  var k = 0;

  for (i=0; i<str.length; i++)

  {

    var c = str.charAt(i);

    if (isHexChar(c))

    {

      d <<= 4;

      d += hexChar2byte(c);

      j++;

      if (0==(j%2))

      {

        byteArray[k++] = d;

        d = 0;

      }

    }

  }

  return byteArray;

}

/* Convert a byte to string */

function byte2hexStr(byte)

{

  var hexByteMap = "0123456789ABCDEF";

  var str = "";

  str += hexByteMap.charAt(byte >> 4);

  str += hexByteMap.charAt(byte & 0x0f);

  return str;

}

/* Convert byte arry to HEX string */

function byteArray2hexStr(byteArray)

{

  var str = "";

  for (var i=0; i<(byteArray.length-1); i++)

  {

    str += byte2hexStr(byteArray[i]);

    str += "-";

  }

  str += byte2hexStr(byteArray[i]);

  return str;

}

/* Button handler */

function buttonHandler(str)

{

  return byteArray2hexStr(hexStr2byteArray(str));

}

</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript