Discuz论坛写出的php加密解密处理类(代码+使用方法)

 PHP加密解密也是常有的事,最近在弄相关的东西,发现discuz论坛里的PHP加密解密处理类代码,感觉挺不错,在用的时候,要参考Discuz论坛的passport相关函数,后面我会附上使用方法,先把类代码帖上来:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/*========================================================
= 文件名称:cls.sys_crypt.php
= 摘    要:php加密解密处理类
= 版    本:1.0
= 参    考:Discuz论坛的passport相关函数
=========================================================*/
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;
}
}
?>

建议将此类保存文件名为:cls.sys_crypt.php

使用方法说明:

1
2
3
4
5
6
7
8
9
//使用前请先引入类文件,如:
include  'cls.sys_crypt.php' ;
$sc  new  SysCrypt( 'phpwms' );
$text  '110' ;
print ( $sc  -> php_encrypt( $text ));
print ( '
'
);
print ( $sc  -> php_decrypt( $sc  -> php_encrypt( $text )));
?>

 

原文地址: Discuz论坛写出的php加密解密处理类(代码+使用方法)

转载于:https://www.cnblogs.com/tcode/p/5958485.html

你可能感兴趣的:(Discuz论坛写出的php加密解密处理类(代码+使用方法))