论坛首页 编程语言技术论坛

php 加密解密类(含公钥)

浏览 3093 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-06-08   最后修改:2010-06-08
PHP
<?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 “加密后 : $enc_text <br/>\n”;
echo “解密后 : $dec_text \n”;
?>

执行结果:

加密前 : http://www.52blogger.com
加密后 : hSzQ’Z* kP~y(WpVs=6Q3gZbR5QkhtZ(f=Zm
解密后 : http://www.52blogger.com

详情请看:http://www.52blogger.com/archives/387
   发表时间:2011-06-03  
连个格式也没有噻~~
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics