function enToken($txt) {
$key = 'colin';
$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-";
$nh = rand(0, 64);
$ch = $chars[ $nh ];
$mdKey = md5($key . $ch);
$mdKey = substr($mdKey, $nh % 8, $nh % 8 + 7);
$txt = base64_encode($txt);
$tmp = '';
$k = 0;
for ($i = 0; $i < strlen($txt); $i++) {
$k = $k == strlen($mdKey) ? 0 : $k;
$j = ($nh + strpos($chars, $txt[ $i ]) + ord($mdKey[ $k++ ])) % 64;
$tmp .= $chars[ $j ];
}
return urlencode($ch . $tmp);
}
function unToken($txt) {
$key = 'colin';
$txt = urldecode($txt);
$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-";
$ch = $txt[0];
$nh = strpos($chars, $ch);
$mdKey = md5($key . $ch);
$mdKey = substr($mdKey, $nh % 8, $nh % 8 + 7);
$txt = substr($txt, 1);
$tmp = '';
$k = 0;
for ($i = 0; $i < strlen($txt); $i++) {
$k = $k == strlen($mdKey) ? 0 : $k;
$j = strpos($chars, $txt[ $i ]) - $nh - ord($mdKey[ $k++ ]);
while ($j < 0) $j += 64;
$tmp .= $chars[ $j ];
}
return base64_decode($tmp);
}
来源:oschina
链接:https://my.oschina.net/colinadmin/blog/3197293