一个非常好的16进制转62进制PHP函数,谁有ASP版,或参照这个Php版整一个??

luok 2014-01-03 04:44:54
这是一个16进制62进制互转的PHP程序,很强大啊,谁能帮忙参照这个,改一个ASP/vb版?多谢
这个很好用,一下就能把%E8%BF%9B%E5%88.htm这种地址变短,同时里面DICT可以按需打乱顺序,别人也不可能知道你地址代表什么中文。


得到一个32位的16进制测试串
$c = md5('ffff');

echo $c, PHP_EOL;

echo $r = convert($c, 62), PHP_EOL;
echo convert($r, -62);

function convert($s, $to=62) {
$dict = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$res = '';
$b = '';
if($to > 0) {
$to = ceil(log($to, 2));//调整到2的k次方
for($i=0; $i<strlen($s); $i++) $b .= sprintf('%04b', hexdec($s{$i}));
while(strlen($b) >= $to) {
$res = $dict{bindec(substr($b, -$to))} . $res;
$b = substr($b, 0, -$to);
}
$res = $dict{bindec($b)} . $res;
return $res;
}
$to = ceil(log(-$to, 2));
for($i=0; $i<strlen($s); $i++) $b .= sprintf("%0{$to}b", strpos($dict, $s{$i}));
while(strlen($b) > 4) {
$res = $dict{bindec(substr($b, -4))} . $res;
$b = substr($b, 0, -4);
}
if(bindec($b)) $res = $dict{bindec($b)} . $res;
return $res;
}
...全文
980 点赞 收藏 7
写回复
7 条回复
luok 2014年04月26日
有人能帮忙么?
回复 点赞
luok 2014年04月21日
积分看来没有吸引力,现金求吧,现金求一段ASP代码: 就是实现 把DF8787DF787FD787FDF7DF7D这样的16进制,转成Av3t0BmoPqD这种样子的62进制。 功能同上面那个PHP
回复 点赞
luok 2014年04月21日
引用 5 楼 xuzuning 的回复:
其实你找个 asp 版的 base64 程序改改就成了 比如 http://www.knowsky.com/609.html 我没有 asp 环境,不然就帮你写了
感谢版主回复! 不知道原理,还真不知道如何修改BASE64 ,哎
回复 点赞
xuzuning 2014年04月21日
其实你找个 asp 版的 base64 程序改改就成了 比如 http://www.knowsky.com/609.html 我没有 asp 环境,不然就帮你写了
回复 点赞
luok 2014年04月17日
引用 2 楼 eliphe 的回复:
我写过16进制与62进制互转的C#版本,不过,asp版的没有......
能否贴来参考下??
回复 点赞
eliphe 2014年01月11日
我写过16进制与62进制互转的C#版本,不过,asp版的没有......
回复 点赞
YYYYYYYYY-X 2014年01月07日
回复 点赞
发动态
发帖子
ASP
创建于2007-09-28

1.9w+

社区成员

35.7w+

社区内容

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区公告
暂无公告