$key="941033C39066FBB8DFB9DC5306250ADCCA947F58D9756D56"; 
调用第二个方法HexStringToByteArray($key);
private static byte chr2hex(String chr) {
        if (chr.equals("0")) {
            return 0x00;
        } else if (chr.equals("1")) {
            return 0x01;
        } else if (chr.equals("2")) {
            return 0x02;
        } else if (chr.equals("3")) {
            return 0x03;
        } else if (chr.equals("4")) {
            return 0x04;
        } else if (chr.equals("5")) {
            return 0x05;
        } else if (chr.equals("6")) {
            return 0x06;
        } else if (chr.equals("7")) {
            return 0x07;
        } else if (chr.equals("8")) {
            return 0x08;
        } else if (chr.equals("9")) {
            return 0x09;
        } else if (chr.equals("A")) {
            return 0x0a;
        } else if (chr.equals("B")) {
            return 0x0b;
        } else if (chr.equals("C")) {
            return 0x0c;
        } else if (chr.equals("D")) {
            return 0x0d;
        } else if (chr.equals("E")) {
            return 0x0e;
        } else if (chr.equals("F")) {
            return 0x0f;
        }
        return 0x00;
    }    public static byte[] HexStringToByteArray(String s) {
        byte[] buf = new byte[s.length() / 2];
        for (int i = 0; i < buf.length; i++) {
            buf[i] = (byte) (chr2hex(s.substring(i * 2, i * 2 + 1)) * 0x10 + chr2hex(s
                    .substring(i * 2 + 1, i * 2 + 2)));
        }
        
        return buf;
    }

解决方案 »

  1.   

    附上我转的,但是我的代码最后的结果,是INT数组,想得到hex.我的转换不一定对,望指教。
    print_r(hexStringToByteArray($key)):
    Array
    (
        [0] => 148
        [1] => 16
        [2] => 51
        [3] => 3
        [4] => 144
        [5] => 102
        [6] => 0
        [7] => 8
        [8] => 0
        [9] => 9
        [10] => 0
        [11] => 83
        [12] => 6
        [13] => 37
        [14] => 0
        [15] => 0
        [16] => 0
        [17] => 148
        [18] => 112
        [19] => 88
        [20] => 9
        [21] => 117
        [22] => 96
        [23] => 86
    )function HexStringToByteArray($s){

    $n=strlen($s)/2;
    //echo $n."<br>";
    for($i=0;$i<$n;$i++){
    $h=chr2hex(substr($s,$i*2,1))*0x10+chr2hex(substr($s,$i*2+1,1));
    //$k.=chr(hexdec($h));
    $k[]=$h;
    //echo "<br>".$k[$i];
    }

    return $k;
    }
    function chr2hex($str) {
    switch($str){
    case 0:
    return 0x00;
    break;
    case 1:
    return 0x01;
    break;
    case 2:
    return 0x02;
    break;
    case 3:
    return 0x03;
    break;
    case 4:
    return 0x04;
    break;
    case 5:
    return 0x05;
    break;
    case 6:
    return 0x06;
    break;
    case 7:
    return 0x07;
    break;
    case 8:
    return 0x08;
    break;
    case 9:
    return 0x09;
    break;
    case "A":
    return 0x0a;
    break;
    case "B":
    return 0x0b;
    break;
    case "C":
    return 0x0c;
    break;
    case "D":
    return 0x0d;
    break;
    case "E":
    return 0x0e;
    break;
    case "F":
    return 0x0f;
    break;
    default:
    return 0x00;
    }
    }
      

  2.   

    这个是你想要的吗?
    <?php
    $key="941033C39066FBB8DFB9DC5306250ADCCA947F58D9756D56";
    $arr = str_split($key, 2);
    print_r($arr);
    foreach($arr as $v){
    echo "0x".$v."<br>";
    }
    ?>
      

  3.   

    粗看一下,java代码的意思是,将一串16进制的字符串,2个2个一起,计算出byte型的10进制结果,最后压入buf数组中$str = '0123456702';
    $buf = str_split($str, 2);
    foreach($buf AS $k=>$v)
    {
    $buf[$k] = base_convert($v, 16, 10);
            //这里我没加上,对结果越界的处理
            //java的byte型,结果从-128—127。稍微处理下即可。上面的结果是0—256的范围
    }
    print_r($buf);
      

  4.   

    是0—255的范围,昏头了 FF=>255
      

  5.   

    $key="941033C39066FBB8DFB9DC5306250ADCCA947F58D9756D56";
    $ar = str_split($key, 2);$ar = array_map('hexdec', $ar);
    print_r($ar);Array
    (
        [0] => 148
        [1] => 16
        [2] => 51
        [3] => 195
        [4] => 144
        [5] => 102
        [6] => 251
        [7] => 184
        [8] => 223
        [9] => 185
        [10] => 220
        [11] => 83
        [12] => 6
        [13] => 37
        [14] => 10
        [15] => 220
        [16] => 202
        [17] => 148
        [18] => 127
        [19] => 88
        [20] => 217
        [21] => 117
        [22] => 109
        [23] => 86
    )