この問題は次のようなものです。 How to get a 64 bit integer hash from a string in PHP?md5ダイジェストの最初の64ビットをPHPで整数として計算しますか?
私はこのJAVA機能を持っています。私はPHPで同じ機能を持っていたいと思います。 PHPは何の64ビット整数型(確認のためecho PHP_INT_SIZE
)を持っていないので、感謝
/**
* returns the first 64 bits of the md5 digest as a long
*/
public static long get64BitMD5(String text) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(text.getBytes(UTF_8));
byte [] digest = md.digest();
long ret = 0;
for (int i = 0; i < 8; i++)
ret = (ret<<8)|(((long)digest[i])&0xFFl);
return ret;
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
}
}
64ビットのPHPは、64ビットの符号なし整数64ビット符号付き整数を有するのではなく... –
@MarkBakerバイトストリーム64ビットを算出することも可能ですhttp://www.php.net/manual/en/function.pack.php)OPの望むものなら、 'md5'の16進数の出力を生のバイトに変換します。唯一の問題は、彼らが話していないということです。 – Jon