Maison >développement back-end >tutoriel php >php加密解密处理类--参 考:Discuz论坛的passpor_PHP教程

php加密解密处理类--参 考:Discuz论坛的passpor_PHP教程

WBOY
WBOYoriginal
2016-07-22 09:03:051062parcourir

<?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  
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;$i<code class="php functions">strlen($txt);$i++) {
31     $ctr = $ctr == <code class="php functions">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 <code class="php functions">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 <code class="php functions">strlen($txt); $i++) {
52     $ctr = $ctr == <code class="php functions">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('<br>');
68 print($sc -> php_decrypt($sc -> php_encrypt($text)));
69 ?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/371817.htmlTechArticle?php 02 /*=========================================================== 03 = 版权协议: 04 = GPL (The GNU GENERAL PUBLIC LICENSE Version 2, June 1991) 05 =----------------------...
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn