欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

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

程序员文章站 2022-05-17 20:39:41
...
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
16 class SysCrypt {
17
18 private $crypt_key;
19
20 // 构造函数
21 public function __construct($crypt_key) {
22 $this -> crypt_key = $crypt_key;
23 }
24
25 public 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;$istrlen($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
37 public 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
47 private 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
58 public function __destruct() {
59 $this -> crypt_key = null;
60 }
61 }
62
63
64 $sc = new SysCrypt('phpwms');
65 $text = '110';
66 print($sc -> php_encrypt($text));
67 print('
'
);
68 print($sc -> php_decrypt($sc -> php_encrypt($text)));
69 ?>