这是我上个求助,然后百度断断续续改成php的了,但是为什么 $bin[$i>5] |= ($sss & $mask)<<($i % 32);这里报错
<?php
function hex_si($s) {
$aa = '744e7d7e7028b817bd9f8f3c6f28a8d3&a171b739a2168bd9c188cf15f9139f90&mtop.taobao.wireless.share.password.get&1.0&0&0&';
$bb = '&0';
$cc = str2binl($aa + $s + $bb);
/*$cc = md5_1_1(, (116 + s.length) * chrsz);*/
/*$kk =binl2hex($cc);*/
return $cc;
}function str2binl($str) {
$bin = Array();
$chrsz = 8;
$mask = (1<$chrsz) - 1;
$strcd =strlen($str);
$sss = get_bianma($str);
for ($i = 0; $i < $strcd * $chrsz; $i += $chrsz)
$bin[$i>5] |= ($sss & $mask)<<($i % 32);
return $bin;
}
function get_bianma($str)//等同于js的charCodeAt()
{
$result = array();
for ($i = 0, $l = mb_strlen($str, 'utf-8'); $i < $l; ++$i) {
$result[] = uniord(mb_substr($str, $i, 1, 'utf-8'));
}
return join(",", $result);
}function uniord($str, $from_encoding = false) {
$from_encoding = $from_encoding ? $from_encoding : 'UTF-8';
if (strlen($str) == 1)
return ord($str);
$str = mb_convert_encoding($str, 'UCS-4BE', $from_encoding);
$tmp = unpack('N', $str);
return $tmp[1];
}$st = 'd3d3LmpiNTEubmV0IOiEmuacrOS5i+Wutg==';echo str2binl($st);?>