$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;
}
调用第二个方法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;
}
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;
}
}
<?php
$key="941033C39066FBB8DFB9DC5306250ADCCA947F58D9756D56";
$arr = str_split($key, 2);
print_r($arr);
foreach($arr as $v){
echo "0x".$v."<br>";
}
?>
$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);
$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
)