ホームページ  >  記事  >  バックエンド開発  >  時間制限のある PHP 暗号化および復号化関数 code_PHP チュートリアル

時間制限のある PHP 暗号化および復号化関数 code_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:05:27890ブラウズ

コードをコピー コードは次のとおりです:

function encode_pass($tex,$key,$type="encode",$expiry=0){
$chrArr=array( 'a' 、'b'、'c'、'd'、'e'、'f'、'g'、'h'、'i'、'j'、'k'、'l'、'm '、' n'、'o'、'p'、'q'、'r'、's'、't'、'u'、'v'、'w'、'x'、'y'、 'z' 、
'A'、'B'、'C'、'D'、'E'、'F'、'G'、'H'、'I'、'J'、'K'、' L'、'M'、'N'、'O'、'P'、'Q'、'R'、'S'、'T'、'U'、'V'、'W'、'X' 、'Y '、'Z'、
'0'、'1'、'2'、'3'、'4'、'5'、'6'、'7'、'8'、'9') ;
if ($type=="decode"){
If ($ Verity_Str! = Substr (MD5 ($ Tex), 0,8)) {
// 完全な検証の失敗
Return false ($tex, 0,6):$chrArr[rand()%62].$chrArr[rand()%62].$chrArr[rand()%62].$chrArr[rand()%62].$ chrArr[rand( )%62].$chrArr[rand()%62];

$rand_key=$key_b.$key;
//時間オプションを設定します
$modnum=0;$modCount=0;$modCountStr= "";
if($expiry>0){
if($type=="decode"){
$modCountStr=substr($tex,6,1);
$modCount=$modCountStr=="a"? $modCountStr); {
$modnum=time()%$expiry floor( time()/$expiry));
$tex=$type=="decode"?base64_decode(substr($tex, 6)):" xugui".$tex;
}
$rand_key=md5($rand_key);


$texlen=strlen($tex);
$reslutstr="";
for($i=0;$i<$texlen;$i++){
$reslutstr.=$tex{$i}^$rand_key {$i%32};
}
if($type!="decode"){
$reslutstr=trim(base64_encode($reslutstr),"==");
$reslutstr=$modCount?$modCountStr.$ modnum.$reslutstr:$reslutstr;
$reslutstr slutstr, 0, 5)!="xugui"){
ceshi yong de " ,"taintainxousad","encode",120);
echo $psa;
echo "rndecryption :";
echo encode_pass($psa,"taintainxousad",'decode',120);
?>

この機能には時間制限があり、有効期限が切れるまで復号化することはできません。時間の経過に伴う動的暗号化により、暗号化されたデータが多様化し、解読の難易度が高まります。

www.bkjia.com本当http://www.bkjia.com/PHPjc/327688.html技術記事次のようにコードをコピーします。 ?php function encode_pass($tex,$key,$type="encode",$expiry=0){ $chrArr=array('a','b','c','d' 、'e'、'f'、'g'、'h'、'i'、'j'、'k'、'l'、'm'、'n'、'o'、'p'、' q '、'r'、's'、...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。