例如:http://www.baidu.com/s?wd=%D6%D0%B9%FA%C8%CB其中:%D6%D0%B9%FA%C8%CB 是“中国人” urlencode得到的
现在要实现的算法是如何在url参数当中传递汉字+英文混合参数的时间加密并达到最短的算法。
当然不用urlencode加密也是可以的,关键是如何得到最短的加密参数。
现在要实现的算法是如何在url参数当中传递汉字+英文混合参数的时间加密并达到最短的算法。
当然不用urlencode加密也是可以的,关键是如何得到最短的加密参数。
解决方案 »
- AJAX投票网页怎样实现返回选择页面??
- 我想实现这么一个功能怎么实现?
- 这句话哪错了??
- 如何上传MySql数据库到服务器?本人是PHP新手..
- 很奇怪的一个问题 关于mysql的text类型字段
- PHP正则匹配查看原图
- PHP支持页面回退的两种方法
- function里面的mysql_query等数据库操作函数前面需要加上mysql_connect和mysql_select_db部分吗?
- 精华:支持逻辑OR-AND关键字搜索高亮显示搜索结果的代码
- 在win2k下如何安装apache、mysql、php?
- curl遇到的难题
- 请问,simplexml_load_string怎么读取节点的属性啊?
http://www.xxx.com/index.php?p=中国人abc123 我想把"中国人abc123"加密并达到加密后的参数(长度)要短一些,当然如果没有办法变短,只要能加密也行然后在index.php代码当中解密这个加密的参数然后进行处理。
或者干脆用UID。
a.php
<?php
require_once("en.php");
$keys = "1234567890abcdefghjk@#$%^&*()!"; //密匙
$cr64 = new AzDGCrypt($keys);
$words="中国人abc123";
$en_word = $cr64->crypt($words);
echo "加密变量 = ".$en_word."<br>"; echo '<a href="b.php?action='.$en_word.'">连接</a>';
?>
b.php
<?php
require_once("en.php");
$keys = "1234567890abcdefghjk@#$%^&*()!"; //密匙
$cr64 = new AzDGCrypt($keys);
$de_word = $cr64->decrypt($_REQUEST['action']);
echo "解密原变量 = ".$de_word."<br>";
?>
en.php
<?php
class AzDGCrypt{
var $k;
function AzDGCrypt($m){
$this->k = $m;
}
function ed($t) {
$r = md5($this->k);
$c=0;
$v = "";
for ($i=0;$i<strlen($t);$i++) {
if ($c==strlen($r)) $c=0;
$v.= substr($t,$i,1) ^ substr($r,$c,1);
$c++;
}
return $v;
}
function crypt($t){
srand((double)microtime()*1000000);
$r = md5(rand(0,32000));
$c=0;
$v = "";
for ($i=0;$i<strlen($t);$i++){
if ($c==strlen($r)) $c=0;
$v.= substr($r,$c,1) .
(substr($t,$i,1) ^ substr($r,$c,1));
$c++;
}
return base64_encode($this->ed($v));
}
function decrypt($t) {
$t = $this->ed(base64_decode($t));
$v = "";
for ($i=0;$i<strlen($t);$i++){
$md5 = substr($t,$i,1);
$i++;
$v.= (substr($t,$i,1) ^ $md5);
}
return $v;
}
}
?>