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

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) {
26srand((double)microtime() * 1000000);
27$encrypt_key = md5(rand(0,32000));
28$ctr = 0;
29$tmp = '';
30for($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}
34return 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 = '';
40for($i = 0;$i < strlen($txt); $i++) {
41$md5 = $txt[$i];
42$tmp .= $txt[++$i] ^ $md5;
43}
44return $tmp;
45}
46
47private function __key($txt,$encrypt_key) {
48$encrypt_key = md5($encrypt_key);
49$ctr = 0;
50$tmp = '';
51for($i = 0; $i < strlen($txt); $i++) {
52$ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;
53$tmp .= $txt[$i] ^ $encrypt_key[$ctr++];
54}
55return $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?>
/*=========================================================== = 版权协议: = GPL (The GNU GENERAL PUBLIC LICENSE Version 2, June 1991) =------------------------------------------------------------ = 文件名称:cls.sys_crypt.php = 摘 要:php加密解密处理类 = 版 本:1.0 = 参 考:Discuz论坛的passport相关函数 =------------------------------------------------------------ = Script Written By PHPWMS项目组 = 最后更新:xinge = 最后日期:2007-12-09 ============================================================*/ class SysCrypt { private $crypt_key; // 构造函数 public function __construct($crypt_key) { $this -> crypt_key = $crypt_key; } public function php_encrypt($txt) { srand((double)microtime() * 1000000); $encrypt_key = md5(rand(0,32000)); $ctr = 0; $tmp = ''; for($i = 0;$i<strlen($txt);$i++) { $ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr; $tmp .= $encrypt_key[$ctr].($txt[$i]^$encrypt_key[$ctr++]); } return base64_encode(self::__key($tmp,$this -> crypt_key)); } public function php_decrypt($txt) { $txt = self::__key(base64_decode($txt),$this -> crypt_key); $tmp = ''; for($i = 0;$i < strlen($txt); $i++) { $md5 = $txt[$i]; $tmp .= $txt[++$i] ^ $md5; } return $tmp; } private function __key($txt,$encrypt_key) { $encrypt_key = md5($encrypt_key); $ctr = 0; $tmp = ''; for($i = 0; $i < strlen($txt); $i++) { $ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr; $tmp .= $txt[$i] ^ $encrypt_key[$ctr++]; } return $tmp; } public function __destruct() { $this -> crypt_key = null; } } $sc = new SysCrypt('phpwms'); $text = '110'; print($sc -> php_encrypt($text)); print('<br>'); print($sc -> php_decrypt($sc -> php_encrypt($text))); ?>