Home  >  Article  >  php教程  >  php加密解密类的实现代码

php加密解密类的实现代码

WBOY
WBOYOriginal
2016-06-13 09:33:13817browse

   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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn