function encode($input)
{
$FlashFXP_Key = "yA36zA48dEhfrvghGRg57h5UlDv3";
if($input=="") return "";
$key = rand(1,255);
//$key = 15; //调试用的echo "动态Key".$key."<br>"; //随机255的数
if($key >0x0F){ //10进制的15
$result = strtoupper(dechex($key)); //10进制转换成16进制并大写
}else{
$result = "0".strtoupper(dechex($key)); //不足15 10进制的15是字母F补0就是0F了并大写
} $magic_number = $key; echo "magic_number".$magic_number."<br>"; //返回值貌似和上面的随机Key一样没变化……$result = strval($result); //将16进制的数字转换成字符串类型echo "result".$result."<br>"; for($i=0;$i<strlen($input);$i++){
echo ord($input[$i])+$magic_number."循环次数".$i."<br>"; if(ord($input[$i])+$magic_number>0xFF) //判断明文相应字符的10进制数加随机key是否大于255 (16进制就是0XFF)$magic_number = (ord($input[$i])+$magic_number - 0xFF)^(ord($FlashFXP_Key[$i%28])); //大于255就减去255 然后在和密匙的相应位置的数值xor计算
else
$magic_number = (ord($input[$i])+$magic_number)^(ord($FlashFXP_Key[$i%28])); //不大于255直接xor 密匙相应位置的数值if($magic_number>0x0F) //10进制的15
$result .= dechex($magic_number); //直接16进制
else
$result = $result."0".dechex($magic_number); //16进制后 补0 (并加上面的Key的16进制)
} $result = strtoupper($result); //全部转换大写字母
return $result;
}
这是一个加密函数,请求各位朋友帮忙写一个解密函数,小弟写了几天都不行,人快崩溃了
{
$FlashFXP_Key = "yA36zA48dEhfrvghGRg57h5UlDv3";
if($input=="") return "";
$key = rand(1,255);
//$key = 15; //调试用的echo "动态Key".$key."<br>"; //随机255的数
if($key >0x0F){ //10进制的15
$result = strtoupper(dechex($key)); //10进制转换成16进制并大写
}else{
$result = "0".strtoupper(dechex($key)); //不足15 10进制的15是字母F补0就是0F了并大写
} $magic_number = $key; echo "magic_number".$magic_number."<br>"; //返回值貌似和上面的随机Key一样没变化……$result = strval($result); //将16进制的数字转换成字符串类型echo "result".$result."<br>"; for($i=0;$i<strlen($input);$i++){
echo ord($input[$i])+$magic_number."循环次数".$i."<br>"; if(ord($input[$i])+$magic_number>0xFF) //判断明文相应字符的10进制数加随机key是否大于255 (16进制就是0XFF)$magic_number = (ord($input[$i])+$magic_number - 0xFF)^(ord($FlashFXP_Key[$i%28])); //大于255就减去255 然后在和密匙的相应位置的数值xor计算
else
$magic_number = (ord($input[$i])+$magic_number)^(ord($FlashFXP_Key[$i%28])); //不大于255直接xor 密匙相应位置的数值if($magic_number>0x0F) //10进制的15
$result .= dechex($magic_number); //直接16进制
else
$result = $result."0".dechex($magic_number); //16进制后 补0 (并加上面的Key的16进制)
} $result = strtoupper($result); //全部转换大写字母
return $result;
}
这是一个加密函数,请求各位朋友帮忙写一个解密函数,小弟写了几天都不行,人快崩溃了
function encode($input)
{
$FlashFXP_Key = "yA36zA48dEhfrvghGRg57h5UlDv3";
if($input=="") return "";
$key = rand(1,255);
//$key = 15; //调试用的echo "动态Key".$key."<br>"; //随机255的数
if($key >0x0F){ //10进制的15
$result = strtoupper(dechex($key)); //10进制转换成16进制并大写
}else{
$result = "0".strtoupper(dechex($key)); //不足15 10进制的15是字母F补0就是0F了并大写
} $magic_number = $key; echo "magic_number".$magic_number."<br>"; //返回值貌似和上面的随机Key一样没变化……$result = strval($result); //将16进制的数字转换成字符串类型echo "result".$result."<br>"; for($i=0;$i<strlen($input);$i++){
echo ord($input[$i])+$magic_number."循环次数".$i."<br>"; if(ord($input[$i])+$magic_number>0xFF) //判断明文相应字符的10进制数加随机key是否大于255 (16进制就是0XFF)$magic_number = (ord($input[$i])+$magic_number - 0xFF)^(ord($FlashFXP_Key[$i%28])); //大于255就减去255 然后在和密匙的相应位置的数值xor计算
else
$magic_number = (ord($input[$i])+$magic_number)^(ord($FlashFXP_Key[$i%28])); //不大于255直接xor 密匙相应位置的数值if($magic_number>0x0F) //10进制的15
$result .= dechex($magic_number); //直接16进制
else
$result = $result."0".dechex($magic_number); //16进制后 补0 (并加上面的Key的16进制)
} $result = strtoupper($result); //全部转换大写字母
return $result;
}
------
试试看function decode($input)
{
$str = strtolower($input);
$FlashFXP_Key = "yA36zA48dEhfrvghGRg57h5UlDv3";
$key = hexdec(substr($str,0,2));
for($i=2,$j=strlen($str),$k=0;$i<$j;$i+=2)
{
$hex = $str{$i}.$str{$i+1};
$nk = hexdec($hex);
$t = $nk ^ ord($FlashFXP_Key[$k++]);
$result.= ($t-$key > 0) ? chr($t-$key) : chr(0xFF + $t-$key);
$key = $nk;
}
return $result;
}
$str = encode("sdfab1232XX你好");
echo "加密:".$str."<br/>";
echo "解密:".decode($str)."<br/>";
{
$str = strtolower($input);
$FlashFXP_Key = "yA36zA48dEhfrvghGRg57h5UlDv3";
$key = hexdec(substr($str,0,2));
$k = 0;
for($i=2,$j=strlen($str),$k=0;$i<$j;$i+=2)
{
$hex = $str{$i}.$str{$i+1};
$nk = hexdec($hex);
$t = $nk ^ ord($FlashFXP_Key[$k % 28]);
$k++;
$result.= ($t-$key > 0) ? chr($t-$key) : chr(0xFF + $t-$key);
$key = $nk;
}
return $result;
}
非常感谢这位大哥的帮忙,我刚开始学PHP,为了写这函数,搞了三天了,真心多谢你的热心帮忙。