首頁 >php教程 >php手册 >php加密解密类的实现代码

php加密解密类的实现代码

WBOY
WBOY原創
2016-06-13 09:33:13847瀏覽

   class Crypt{

  // 本文来源:龙哥博客

  protected $key = “”; //公钥

  private function keyED($txt,$encrypt_key)

  {

  $encrypt_key = md5($encrypt_key);

  $ctr=0;

  $tmp = “”;

  for ($i=0;$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

  {

  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

  {

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

  }

  // Downloads By http://www.veryhuo.com

  }

  $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

  \n”;

  echo “加密后 : $enc_text

  \n”;

  echo “解密后 : $dec_text \n”;

  ?>

  执行结果:

  加密前 : http://www.52blogger.com

  加密后 : hSzQ’Z* kP~y(WpVs=6Q3gZbR5QkhtZ(f=Zm

  解密后 : http://www.52blogger.com

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn