php加密解密類的實現代碼_PHP教程

來源:互聯網
上載者:User
  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

http://www.bkjia.com/PHPjc/815783.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/815783.htmlTechArticleclass Crypt{ // 本文來源:龍哥部落格 protected $key = ; //公開金鑰 private function keyED($txt,$encrypt_key) { $encrypt_key = md5($encrypt_key); $ctr=0; $tmp = ; for ($i=0;$i...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.