首頁  >  文章  >  後端開發  >  php 加密解密种(含公钥)

php 加密解密种(含公钥)

WBOY
WBOY原創
2016-06-13 13:12:021653瀏覽

php 加密解密类(含公钥)

?

<span><span><?php 
class  Crypt{ 

protected $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(empty($key)){ 
$key=$this->key; 
} 
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++; 
} 
return $this->keyED($tmp,$key); 
} 

public function decrypt($txt,$key="") 
{ 
if(empty($key)){ 
$key=$this->key; 
} 

$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; 
} 

public function setKey($key) 
{ 
if(empty($key)){ 
return null; 
} 
$this->key=$key; 
} 

public function getKey() 
{ 
return $this->key; 
} 

} 
$string = "http://www.52blogger.com"; 
$crypt= new Crypt(); 
$crypt->setKey("http://www.52blogger.com"); 
$enc_text = $crypt->encrypt($string,$crypt->getKey()); 
$dec_text = $crypt->decrypt($enc_text,$crypt->getKey()); 
echo "加密前 : $string <br/>\n"; 
echo </span>"加密后 : $enc_text <br/>\n</span>"; 
<span><span>echo </span>"解密后 : $dec_text \n</span>"; 
<span><span>?> </span></span>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn