思路
)将长网址md生成位签名串分为段每段个字节
)对这四段循环处理取个字节将他看成进制串与xfffffff(位)与操作即超过位的忽略处理
)这位分成段每位的数字作为字母表的索引取得特定字符依次进行获得位字符串
)总的md串可以获得个位串取里面的任意一个就可作为这个长url的短url地址
下面是PHP代码
function shorturl($url= $prefix= $suffix=) {
$base = array (
a b c d e f g h
i j k l m n o p
q r s t u v w x
y z )
$hex = md($prefix$url$suffix)
$hexLen = strlen($hex)
$subHexLen = $hexLen /
$output = array()
for ($i = $i < $subHexLen $i++) {
$subHex = substr ($hex $i * )
$int = xFFFFFFF & ( * (x$subHex))
$out =
for ($j = $j < $j++) {
$val = xF & $int
$out = $base[$val]
$int = $int >>
}
$output[] = $out
}
return $output
}
$urls = shorturl()
var_dump($urls)