《PHP教程:PHP實現加強版加密解密類實例》要點:
本文介紹了PHP教程:PHP實現加強版加密解密類實例,希望對您有用。如果有疑問,可以聯系我們。
PHP實戰本文實例講述了PHP實現加強版加密解密類.分享給大家供大家參考.具體如下:
PHP實戰
<?php
class Ender{
private $enkey;//加密解密用的密鑰
private $rep_char='#';
//替換加密后的base64字符串中的=,因為=在有些場合是禁止使用的,
//這里可以用一個允許的字符作為替換.
//構造參數是密鑰
public function __construct($key=''){
if(!$key){
$this->enkey=$key;
}
}
//設置密鑰http://blog.ddian.cn
public function set_key($key){
$this->enkey=$key;
}
private function keyED($txt,$encrypt_key)
{
$encrypt_key = md5($encrypt_key);
$ctr=0;
$tmp = "";
for ($i=0;$i<strlen($txt);$i++)
{
if ($ctr==strlen($encrypt_key)) $ctr=0;
$tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1);
$ctr++;
}
return $tmp;
}
//加密字符串
public function encrypt($txt,$key='')
{
if(!$key){
$key=$this->enkey;
}
srand((double)microtime()*1000000);
$encrypt_key = md5(rand(0,32000));
$ctr=0;
$tmp = "";
for ($i=0;$i<strlen($txt);$i++)
{
if ($ctr==strlen($encrypt_key)) $ctr=0;
$tmp.= substr($encrypt_key,$ctr,1) .
(substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1));
$ctr++;
}
$r=base64_encode($this->keyED($tmp,$key));
$r=str_replace('=',$this->rep_char,$r);
return $r;
}
//解密字符串
public function decrypt($txt,$key='')
{
$txt=str_replace($this->rep_char,'=',$txt);
$txt=base64_decode($txt);
if(!$key){
$key=$this->enkey;
}
$txt = $this->keyED($txt,$key);
$tmp = "";
for ($i=0;$i<strlen($txt);$i++)
{
$md5 = substr($txt,$i,1);
$i++;
$tmp.= (substr($txt,$i,1) ^ $md5);
}
return $tmp;
}
}
PHP實戰希望本文所述對大家的php程序設計有所贊助.
歡迎參與《PHP教程:PHP實現加強版加密解密類實例》討論,分享您的想法,維易PHP學院為您提供專業教程。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/9379.html