开发者

Get first eight bytes of a MD5 string

I want to get the first eight bytes of a calculated MD5 string. In Ruby I do this:

Digest::MD5.digest("foo")[0, 8]

What is the best way to do this in PHP?

EDIT: I don't want it as a String, which substr() returns. I thought of calling md5("foo", true), where the true parameter enables returning binary. I want to cut the 16 bytes to 8 bytes.开发者_如何学Python


If I remember correctly, using md5() and hex2bin() should do what you want:

substr(hex2bin(md5("foo")), 0, 8);

EDIT:

If the hex2bin() function is not defined, you can alternatively implement it yourself using this function (from here):

function hex2bin($hexdata) { 
  $bindata=""; 

  for ($i=0;$i<strlen($hexdata);$i+=2) { 
    $bindata.=chr(hexdec(substr($hexdata,$i,2))); 
  } 

  return $bindata; 
}


Use substr.

substr(md5("foo"),0,8);


Use md5 and substr: substr(md5("foo"), 0, 8)


The easiest way is to do:

printf(substr(md5('foo'),0,8));                                                                                                                                                                    
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜