当前位置:首页 > PHP教程 > php类库 > 列表

PHP实现的加密解密处理类

发布:smiling 来源: PHP粉丝网  添加日期:2021-08-02 14:08:07 浏览: 评论:0 

这篇文章主要介绍了PHP实现的加密解密处理类,结合实例形式分析了php加密解密类的定义与使用技巧,需要的朋友可以参考下。

本文实例讲述了PHP实现的加密解密处理类,分享给大家供大家参考,具体如下:

  1. <?php 
  2.  /*=========================================================== 
  3.  = 版权协议: 
  4.  = GPL (The GNU GENERAL PUBLIC LICENSE Version 2, June 1991) 
  5.  =------------------------------------------------------------ 
  6.  = 文件名称:cls.sys_crypt.php 
  7.  = 摘  要:php加密解密处理类 
  8.  = 版  本:1.0 
  9.  = 参  考:Discuz论坛的passport相关函数 
  10.  =------------------------------------------------------------ 
  11.  = 最后更新日期:2007-12-09 
  12.  ============================================================*/ 
  13.  class SysCrypt { 
  14.  private $crypt_key
  15.  // 构造函数 
  16.  public function __construct($crypt_key) { 
  17.   $this -> crypt_key = $crypt_key
  18.  } 
  19.  public function php_encrypt($txt) { 
  20.   srand((double)microtime() * 1000000); 
  21.   $encrypt_key = md5(rand(0,32000)); 
  22.   $ctr = 0; 
  23.   $tmp = ''
  24.   for($i = 0;$i<strlen($txt);$i++) { 
  25.    $ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr
  26.    $tmp .= $encrypt_key[$ctr].($txt[$i]^$encrypt_key[$ctr++]); 
  27.   } 
  28.   return base64_encode(self::__key($tmp,$this -> crypt_key)); 
  29.  } 
  30.  public function php_decrypt($txt) { 
  31.   $txt = self::__key(base64_decode($txt),$this -> crypt_key); 
  32.   $tmp = ''
  33.   for($i = 0;$i < strlen($txt); $i++) { 
  34.    $md5 = $txt[$i]; 
  35.    $tmp .= $txt[++$i] ^ $md5
  36.   } 
  37.   return $tmp
  38.  } 
  39.  private function __key($txt,$encrypt_key) { 
  40.   $encrypt_key = md5($encrypt_key); 
  41.   $ctr = 0; 
  42.   $tmp = ''
  43.   for($i = 0; $i < strlen($txt); $i++) { 
  44.    $ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr
  45.    $tmp .= $txt[$i] ^ $encrypt_key[$ctr++]; 
  46.   } 
  47.   return $tmp
  48.  } 
  49.  public function __destruct() { 
  50.   $this -> crypt_key = null; 
  51.  } 
  52.  } 
  53.  //执行代码 
  54.  $sc = new SysCrypt('phpwms'); 
  55.  $text = 'abc10000008910000000990099hh'//需要加密的数据 
  56.  print($sc -> php_encrypt($text)); //加密 
  57.  print('<br>'); 
  58.  print($sc -> php_decrypt($sc -> php_encrypt($text))); //解密 
  59. ?>

Tags: PHP加密解密

分享到: