求一个编码后没有大写字母的编码,比如将这个URL进行编码或加密 http://www.google.com/ERD0230/dfeeDDD 要求编码或加密后的代码不能有大写字母,并且是可逆日,应该怎样处理,感慨不尽
解决方案 »
- 问个网络文本阅读器的问题
- 关于SYBASE字符串匹配问题
- 有关session的错误
- 求php+ajax上传图片的实例!!!!!!!!!!!!!!!!!!!!!用的不是files,点击<a href="">上传图片</a>的时候,就弹出选择本地图
- [江湖救急]写一个PHP文件调用discuzX2.5的最新5条主题
- 非常紧急帮我看看攻击我的程序是什么用意
- wordpress代码:sql 语句中的 pm wp 是什么意思?
- 来个好用的xss过滤函数
- 怎么在Linux中使PHP支持Postgresql?
- 这个php连接数据库代码哪里错了啊!
- 关于淘宝api或者自己写规则抓taobao产品的信息
- {foreach from=$brand_list item=brand name="brand_foreach"}这个标签中的name是什么意思,有什么用处
echo $m = current(unpack('H*', $s)), PHP_EOL;
echo pack('H*', $m), PHP_EOL;
http://www.google.com/ERD0230/dfeeDDD 就变成了 http://www.google.com/\e\r\d0230/dfee\d\d\d
编码的思路很简单吧,就是把大写字母变成小写,然后在之前加上一个反斜杠。
反编码就是检查每个字线前面是否有反斜杠,有的话去掉前面的反斜杠,再转成大写。这样可以吧。
版主不是给答案了吗?
如果按我#2说的,字符集恰好为16,这两个答案是一样的echo $s = 'http://www.google.com/ERD0230/dfeeDDD', PHP_EOL;
echo $m = current(unpack('H*', $s)), PHP_EOL;
////////////////////////////////////////////////////////////
$res = "";
for($i=0,$n=strlen($s);$i<$n;$i++)
{
$res .= str_pad(dechex(ord($s{$i})), 2, "0", STR_PAD_LEFT);
}
echo $res;
function encrypt($plainText)
{
return strtr(bin2hex($plainText), '0123456789abcdef', 'abcdefghijklmnop');
}function decrypt($encryptedText)
{
return pack("H*", (strtr($encryptedText, 'abcdefghijklmnop', '0123456789abcdef')));
}$url = encrypt('http://www.google.com/ERD0230/dfeeDDD');
echo $url . '<br>';
echo decrypt($url);
?>