将它们打包成一文件就叫fun.php吧
复制代代码如下:
php
functionパスポート_encrypt($txt, $key) {
srand((double)microtime() * 1000000);
$encrypt_key = md5(rand(0, 32000));
$ctr = 0;
$tmp = '';
for($i = 0;$i
$tmp .= $encrypt_key[$ctr].($txt[$i] ^ $encrypt_key[$ctr ]);
}
returnbase64_encode(passport_key($tmp, $key));
}
関数パスポート_decrypt($txt, $key) {
$txt = パスポート_キー(base64_decode($txt), $key);
$tmp = '';
for($i = 0;$i
$tmp .= $txt[ $i] ^ $md5;
}
return $tmp;
}
関数 passport_key($txt, $encrypt_key) {
$encrypt_key = md5($encrypt_key);
$ctr = 0;
$tmp = '';
for($i = 0; $i
$tmp .= $txt[$i] ^ $encrypt_key[$ctr ];
}
return $tmp;
}
?>
复制代码 代码如下:
//string.php
include “fun.php”;
$txt = “これはテストです”;
$key = “テストキー”;
$encrypt =passport_encrypt($txt,$key);
$decrypt =passport_decrypt($encrypt,$key);
echo $txt.”
复制代码代码如下:
//login.phpsession_start();
「fun.php」をインクルードします。
$_SESSION[“ユーザーID”];
$_SESSION[“ユーザー名”];
$_SESSION[“userpwd”];
header("場所: http://$domain/process.php?s=".urlencode(passport_encrypt(serialize($_SESSION),"sessionkey")));
?>
上の例では、事前に Serialize を使用して $_SESSION を保存可能なデータに変更し、その後 passport_encrypt によってこのデータを加密します。urlencode の原因は、$_SESSION の加密により、画像素材が生成される可能性があります。望まれないコード、したがって、なんとか(事实证明非常に有效)
复制代 代以下:
//process.phpsession_start();
「fun.php」を含める;
$_SESSION=unserialize(passport_decrypt($_GET["s"],"sessionkey"));
header("場所: http://$domain/index.php");
?>
最初に $_GET["s"] を使用して URL のパラメータを取得し、次にパスポート_decrypt を使用してそれを復号化し、次に unserialize を使用してデータを元のデータに復元します。この処理ステップでは、 Web ページはヘッダー Jump を自由に渡すことができます。
この方法にはセキュリティの問題も伴います。アドレス送信プロセス中に他人に URL アドレスが取得されると、URL の内容を解読できない可能性があります。この URL アドレスを直接使用して、個人アカウント、電子メール アカウント、さらには銀行口座にログインすることもできます (もちろん、このように書く人はほとんどいません。私は例外です (笑))。
次は process.php の拡張バージョンです
コードをコピーしますコードは次のとおりです:
session_start();
include_once "fun.php"
$_SESSION=unserialize(passport_decrypt($_GET["s) "],"セッションキー"));
if((time()-$_SESSION["TIME"])>30){
header("場所: http://$domain/login.php ");
unset($_SESSION[ "USERNAME"]);
unset($_SESSION["PASSWORD"]);
}
else
header("場所: http:/ /$domain/index.php");
?>