【发布时间】:2016-08-13 19:53:29
【问题描述】:
我有一个 Java 函数,我需要一个 PHP 中的等效函数。如果有帮助,我将使用它来解析 MD5 哈希。
public static byte[] asBin(String paramString)
{
if (paramString.length() < 1)
return null;
byte[] arrayOfByte = new byte[paramString.length() / 2];
for (int i = 0; i < paramString.length() / 2; i++) {
int j = Integer.parseInt(paramString.substring(i * 2, i * 2 + 1), 16);
int k = Integer.parseInt(paramString.substring(i * 2 + 1, i * 2 + 2), 16);
arrayOfByte[i] = ((byte)(j * 16 + k));
}
return arrayOfByte;
}
现在我得到了这个,但输出不一样。
function asBin($str){
if($str == "") return null;
$bytes = array();
for($i = 0; $i < strlen($str) / 2; $i++){
$j = intval(substr($str, $i * 2, $i * 2 + 1), 16);
$k = intval(substr($str, $i * 2 + 1, $i * 2 + 2), 16);
$bytes[$i] = intval($j * 16 + $k);
}
return $bytes;
}
【问题讨论】:
-
或者直接使用
hex2bin() -
当您将
int转换为byte时,可能会出现溢出(在java 代码中)(请参阅(byte)(j * 16 + k))