[英]Find inverse of PHP function
由于我在PHP上比我更希望“笨蛋”,因此是否可以逆转以下函数,例如:
public function baseID($resourceid){
$rid = $resourceid;
$version = 0;
while ($rid > 16777216){
$version++;
if ($version == 1){
//the constant applied to all items
$rid -= 1342177280;
}elseif ($version == 2){
//the value added to the first updated version
$rid -= 50331648;
}else{
//the value added on all subsequent versions
$rid -= 16777216;
}
}
//$returnable = array('baseID'=>$rid,'version'=>$version);
return $rid;
}
是否可以输入“ baseID”并返回“ resourceID”,而不是当前方式?
如果这是错误的地方,我很抱歉
并不是的。 您的函数将为所有形式的rid
返回相同的值:
5 * 2^28 + (3 + n) * 2^24
其中n
是一个正整数。
>>> baseID(5 * 2**28 + (3 + 1) * 2**24)
16777216
>>> baseID(5 * 2**28 + (3 + 2) * 2**24)
16777216
>>> baseID(5 * 2**28 + (3 + 3) * 2**24)
16777216
因此,仅给出16777216
,您将无法确定函数中所包含的内容。
此功能仅在有限范围内起作用,但是在某些时候资源ID将开始返回相同的结果。
public function resourceID($baseid){
$bid = $baseid;
$version = 0;
while ($bid <= 16777216){
++$version;
if ($version === 1){
$bid += 1342177280;
} elseif ($version === 2){
$bid += 50331648;
} else {
$bid += 16777216;
}
}
return $bid;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.