ここで
について詳しく紹介します。これらのPHP暗号化と復号化を使用する理由は、URLアドレスが取得される場合があり、渡された値を解読したい場合はキーを知っている必要があるためです。キーはありません。彼があなたの URL の内容を知るにはしばらく時間がかかるはずです...
早速、それらをファイルにパッケージ化して、fun.php
という名前を付けます。
<ol class="dp-xml"> <li class="alt"><span><span>//string.php </span></span></li> <li> <span class="tag"><</span><span> ?php </span></li><li class="alt"><span>include “fun.php”; </span></li><li><span>$</span><span class="attribute">txt</span><span> = “This is a test”; </span></li><li class="alt"><span>$</span><span class="attribute">key</span><span> = “testkey”; </span></li><li><span>$</span><span class="attribute">encrypt</span><span> = </span><span class="attribute-value">passport_encrypt</span><span>($txt,$key); </span></li><li class="alt"><span>$</span><span class="attribute">decrypt</span><span> = </span><span class="attribute-value">passport_decrypt</span><span>($encrypt,$key); </span></li><li><span>echo $txt.”</span><span class="tag"><</span><span> </span><span class="tag-name">br</span><span class="tag">></span><span class="tag"><</span><span> </span><span class="tag-name">hr</span><span class="tag">></span><span>”; </span> </li> <li class="alt"> <span>echo $encrypt.”</span><span class="tag"><</span><span> </span><span class="tag-name">br</span><span class="tag">></span><span class="tag"><</span><span> </span><span class="tag-name">hr</span><span class="tag">></span><span>”; </span> </li> <li> <span>echo $decrypt.”</span><span class="tag"><</span><span> </span><span class="tag-name">br</span><span class="tag">></span><span class="tag"><</span><span> </span><span class="tag-name">hr</span><span class="tag">></span><span>”; </span> </li> <li class="alt"> <span class="tag">?></span><span> </span> </li> <li><span>//array.php </span></li> <li class="alt"> <span class="tag"><</span><span> ?php </span></li><li><span>include “fun.php”; </span></li><li class="alt"><span>$</span><span class="attribute">array</span><span class="attribute-value">array</span><span> = array( </span></li><li><span>"a" =</span><span class="tag">></span><span> "1", </span> </li> <li class="alt"> <span>"b" =</span><span class="tag">></span><span> "2", </span> </li> <li> <span>"c" =</span><span class="tag">></span><span> "3", </span> </li> <li class="alt"> <span>"d" =</span><span class="tag">></span><span> "4" </span> </li> <li><span>); </span></li> <li class="alt"><span>//serialize产生一个可存储的值,<br>返回一个字符串,unserialize还原 </span></li> <li> <span>$</span><span class="attribute">txt</span><span> = </span><span class="attribute-value">serialize</span><span>($array); </span> </li> <li class="alt"> <span>$</span><span class="attribute">key</span><span> = “testkey”; </span> </li> <li> <span>$</span><span class="attribute">encrypt</span><span> = </span><span class="attribute-value">passport_encrypt</span><span>($txt,$key); </span> </li> <li class="alt"> <span>$</span><span class="attribute">decrypt</span><span> = </span><span class="attribute-value">passport_decrypt</span><span>($encrypt,$key); </span> </li> <li> <span>$</span><span class="attribute">decryptArray</span><span> = </span><span class="attribute-value">unserialize</span><span>($decrypt); </span> </li> <li class="alt"> <span>echo $txt.”</span><span class="tag"><</span><span> </span><span class="tag-name">br</span><span class="tag">></span><span class="tag"><</span><span> </span><span class="tag-name">hr</span><span class="tag">></span><span>”; </span> </li> <li> <span>echo $encrypt.”</span><span class="tag"><</span><span> </span><span class="tag-name">br</span><span class="tag">></span><span class="tag"><</span><span> </span><span class="tag-name">hr</span><span class="tag">></span><span>”; </span> </li> <li class="alt"> <span>echo $decrypt.”</span><span class="tag"><</span><span> </span><span class="tag-name">br</span><span class="tag">></span><span class="tag"><</span><span> </span><span class="tag-name">hr</span><span class="tag">></span><span>”; </span> </li> <li> <span>echo $decryptArray.”</span><span class="tag"><</span><span> </span><span class="tag-name">br</span><span class="tag">></span><span class="tag"><</span><span> </span><span class="tag-name">hr</span><span class="tag">></span><span>”; </span> </li> <li class="alt"> <span class="tag">?></span><span> </span> </li> </ol>
那要怎样来、ユーザーのセッションを処理する必要があります…
ネット页都は状態がありません。のネットワーク内でセッションが継続的に使用されているため、セッションをある場所から別の場所に移動する必要があります。おそらく、何人かのユーザーがすでに目的を達成している可能性があります。URL 経由でセッションを使用できます…。PHP では、セッションの量を処理します。 $_SESSION.から….
要注釈のセッションを数値グループに変換します。このデータを加重します。urlencode の原因は、$_SESSION が密になっているため、画像素材が予期しないコードを生成する可能性があるため、予防策を講じています…(事は非常に有効です)
処理下先<ol class="dp-xml"> <li class="alt"><span><span>//login.php </span></span></li> <li> <span class="tag"><</span><span> ?php </span></li><li class="alt"><span>session_start(); </span></li><li><span>include “fun.php”; </span></li><li class="alt"><span>…. </span></li><li><span>$_SESSION[“userid”]; </span></li><li class="alt"><span>$_SESSION[“username”]; </span></li><li><span>$_SESSION[“userpwd”]; </span></li><li class="alt"><span>… </span></li><li><span>header("Location: http:<br />//$domain/process.php?</span><span class="attribute">s</span><span>="<br />.urlencode(passport_encrypt<br />(serialize($_SESSION),"</span><span class="attribute-value">sessionkey</span><span>"))); </span></li><li class="alt"><span class="tag">?></span><span> </span> </li> </ol>
この処理を完了すると、ヘッダー自由跳躍を介してインターネットを利用できる可能性があります…
这种PHP加密解密方法还涉及到安全性的问题,如果你的url地址在传址的过程中被人家获取的话,那就真的是不好意思了…人家虽然可能破解不了url里边的内容,但人家也可以直接用这个url地址来登录你的一些个人账户啊,邮箱帐户啊甚至银行帐户(当然很少人会这样写,我例外,哈哈)…听起来好怕….但其实你可以在跳转页面作取消session处理….
以下是加强版的process.php
<ol class="dp-xml"> <li class="alt"><span><span class="tag"><</span><span> ?php </span></span></li><li><span>session_start(); </span></li><li class="alt"><span>include_once "fun.php"; </span></li><li><span>$</span><span class="attribute">_SESSION</span><span>=</span><span class="attribute-value">unserialize</span><span>(passport_<br />decrypt($_GET["s"],"sessionkey")); </span></li><li class="alt"><span>if((time()-$_SESSION["TIME"])</span><span class="tag">></span><span>30){ </span></span></li> <li><span>header("Location: http://<br>$domain/ login.php"); </span></li> <li class="alt"><span>unset($_SESSION["USERNAME"]); </span></li> <li><span>unset($_SESSION["PASSWORD"]); </span></li> <li class="alt"><span>} </span></li> <li><span>else </span></li> <li class="alt"><span>header("Location: http://<br>$domain/ index.php"); </span></li> <li> <span class="tag">?></span><span> </span> </li> </ol>
写这个PHP加密解密文件之前,你还要在登录那边设置
$_SESSION["TIME"] = time();
设置这个的原因主要是获取两边的时间,如果跳转的时候超过30秒的时候,你就可以让它跳转到login.php登录页面,网速慢的客户就不好意思啦…但这也预防了如果此url被人获取,而这个人又没有在30秒内登录的话,那就不好意思啊,超时重新登录.
$_SESSION["USERNAME"]和$_SESSION["PASSWORD"] 这两个东东就是用户登录时需要输入的用户名和密码了….取消这两个session的原因就是因为如果你的url被人获取了,那个人虽然在超过30秒内跳转到loign.php的页面,但那些传过来的session依然有效,只要将url后缀login.php改为index.php….那他一样登录成功…