您当前的位置: 首页 > 网站编程 > PHP教程 > php加密解密处理类--参 考:Discuz论坛的passpor

php加密解密处理类--参 考:Discuz论坛的passpor

作者:不详 来源:网络 发布时间: 2014-08-21 17:40 点击:
?php 02 /*=========================================================== 03 = 版权协议: 04 = GPL (The GNU GENERAL PUBLIC LICENSE Version 2, June 1991) 05 =------------------------------------------------------------ 06 = 文件名称:cls.sys_crypt.php 07

php加密解密处理类--参 考:Discuz论坛的passpor

  <?php

  

  

  

  

  

  

  

  
02/*===========================================================


  

  

  

  

  

  

  

  
03= 版权协议:


  

  

  

  

  

  

  

  
04= GPL (The GNU GENERAL PUBLIC LICENSE Version 2, June 1991)


  

  

  

  

  

  

  

  
05=------------------------------------------------------------


  

  

  

  

  

  

  

  
06= 文件名称:cls.sys_crypt.php


  

  

  

  

  

  

  

  
07= 摘   要:php加密解密处理类


  

  

  

  

  

  

  

  
08= 版   本:1.0


  

  

  

  

  

  

  

  
09= 参   考:Discuz论坛的passport相关函数


  

  

  

  

  

  

  

  
10=------------------------------------------------------------


  

  

  

  

  

  

  

  
11= Script Written By PHPWMS项目组


  

  

  

  

  

  

  

  
12= 最后更新:xinge


  

  

  

  

  

  

  

  
13= 最后日期:2007-12-09


  

  

  

  

  

  

  

  
14============================================================*/


  

  

  

  

  

  

  

  
15


  

  

  

  

  

  

  

  
16class SysCrypt {


  

  

  

  

  

  

  

  
17


  

  

  

  

  

  

  

  
18private $crypt_key;


  

  

  

  

  

  

  

  
19


  

  

  

  

  

  

  

  
20// 构造函数


  

  

  

  

  

  

  

  
21public function __construct($crypt_key) {


  

  

  

  

  

  

  

  
22   $this -> crypt_key = $crypt_key;


  

  

  

  

  

  

  

  
23}


  

  

  

  

  

  

  

  
24


  

  

  

  

  

  

  

  
25public function php_encrypt($txt) {


  

  

  

  

  

  

  

  
26   srand((double)microtime() * 1000000);


  

  

  

  

  

  

  

  
27   $encrypt_key = md5(rand(0,32000));


  

  

  

  

  

  

  

  
28   $ctr = 0;


  

  

  

  

  

  

  

  
29   $tmp = '';


  

  

  

  

  

  

  

  
30   for($i = 0;$i<strlen($txt);$i++) {


  

  

  

  

  

  

  

  
31    $ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;


  

  

  

  

  

  

  

  
32    $tmp .= $encrypt_key[$ctr].($txt[$i]^$encrypt_key[$ctr++]);


  

  

  

  

  

  

  

  
33   }


  

  

  

  

  

  

  

  
34   return base64_encode(self::__key($tmp,$this -> crypt_key));


  

  

  

  

  

  

  

  
35}


  

  

  

  

  

  

  

  
36


  

  

  

  

  

  

  

  
37public function php_decrypt($txt) {


  

  

  

  

  

  

  

  
38   $txt = self::__key(base64_decode($txt),$this -> crypt_key);


  

  

  

  

  

  

  

  
39   $tmp = '';


  

  

  

  

  

  

  

  
40   for($i = 0;$i < strlen($txt); $i++) {


  

  

  

  

  

  

  

  
41    $md5 = $txt[$i];


  

  

  

  

  

  

  

  
42    $tmp .= $txt[++$i] ^ $md5;


  

  

  

  

  

  

  

  
43   }


  

  

  

  

  

  

  

  
44   return $tmp;


  

  

  

  

  

  

  

  
45}


  

  

  

  

  

  

  

  
46


  

  

  

  

  

  

  

  
47private function __key($txt,$encrypt_key) {


  

  

  

  

  

  

  

  
48   $encrypt_key = md5($encrypt_key);


  

  

  

  

  

  

  

  
49   $ctr = 0;


  

  

  

  

  

  

  

  
50   $tmp = '';


  

  

  

  

  

  

  

  
51   for($i = 0; $i < strlen($txt); $i++) {


  

  

  

  

  

  

  

  
52    $ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;


  

  

  

  

  

  

  

  
53    $tmp .= $txt[$i] ^ $encrypt_key[$ctr++];


  

  

  

  

  

  

  

  
54   }


  

  

  

  

  

  

  

  
55   return $tmp;


  

  

  

  

  

  

  

  
56}


  

  

  

  

  

  

  

  
57


  

  

  

  

  

  

  

  
58public function __destruct() {


  

  

  

  

  

  

  

  
59   $this -> crypt_key = null;


  

  

  

  

  

  

  

  
60}


  

  

  

  

  

  

  

  
61}


  

  

  

  

  

  

  

  
62


  

  

  

  

  

  

  

  
63


  

  

  

  

  

  

  

  
64$sc = new SysCrypt('phpwms');


  

  

  

  

  

  

  

  
65$text = '110';


  

  

  

  

  

  

  

  
66print($sc -> php_encrypt($text));


  

  

  

  

  

  

  

  
67print('<br>');


  

  

  

  

  

  

  

  
68print($sc -> php_decrypt($sc -> php_encrypt($text)));


  

  

  

  

  

  

  

  
69?>
分享到:
本文"php加密解密处理类--参 考:Discuz论坛的passpor"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 广告合作 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4