如何在php中加密解密url

时间:2015-10-26 05:32:22

标签: php encryption

通过url传递1000个数组变量并将其返回到另一个页面。我可以加密动态创建的url和de crypt回到原始阶段以进一步查询。 我的网址看起来像这样:

http://example.com/abc/abc1.php?808=880&807=879&806=878&805=877&804=876&803=875&802=872&801=871&800=869&799=868&798=867&797=866&796=865&795=864&794=863&793=862&792=861&791=860&790=859&789=858&788=857&787=856&786=855&785=854&784=853&783=852&782=850&781=849&780=848&779=847&778=846&777=845&776=844&775=843&774=842&773=841&772=840

代码:

$rfinalarray = array_intersect($rarray1, $rarray2, $rarray3, $rarray4, $rarray5, $rarray6, $rarray7, $rarray8, $rarray9, $rarray10, $rarray12, $rarray13, $rarray14, $rarray15, $rarray16, $rarray17);
if (count($rfinalarray) > 0) {
    $arrayr = array_values($rfinalarray);
    arsort($arrayr);
    $ab = http_build_query($arrayr);

    header("HTTP/1.1 301 Moved Permanently");
    header("Location: http://example.com/abc.php?$ab");
} else {
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: http://example.com/abc.php?search=noresult");
    unset($_SESSION['reals']);
}

2 个答案:

答案 0 :(得分:1)

这不是使用GET的好方法,而是使用POST。但是对于你的信息,试试这个:

<?php
function encrypt_url($string) {
  $key = "MAL_979805"; //key to encrypt and decrypts.
  $result = '';
  $test = "";
   for($i=0; $i<strlen($string); $i++) {
     $char = substr($string, $i, 1);
     $keychar = substr($key, ($i % strlen($key))-1, 1);
     $char = chr(ord($char)+ord($keychar));

     $test[$char]= ord($char)+ord($keychar);
     $result.=$char;
   }

   return urlencode(base64_encode($result));
}

function decrypt_url($string) {
    $key = "MAL_979805"; //key to encrypt and decrypts.
    $result = '';
    $string = base64_decode(urldecode($string));
   for($i=0; $i<strlen($string); $i++) {
     $char = substr($string, $i, 1);
     $keychar = substr($key, ($i % strlen($key))-1, 1);
     $char = chr(ord($char)-ord($keychar));
     $result.=$char;
   }
   return $result;
}
?>

here

开始

答案 1 :(得分:-1)

更新了以隐藏形式保存数据的方法,并在dom准备好的情况下提交表格,相反,表格也可以在活动上提交。

在ab.php

$array = serialize($ab);
<form action="ac.php" method="post" id="test">
     <textarea name="array" style="display:none;">
          <?php echo $array;?>
     </textarea>
</form>

在ab.php上使用jquery:

$(document).ready(function(){
    $('form#test').submit();
});

@ ac.php你可以通过$ _POST获得它 希望有所帮助