>  기사  >  php教程  >  php加密解密类的实现代码

php加密解密类的实现代码

WBOY
WBOY원래의
2016-06-13 09:33:13795검색

   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으로 문의하세요.