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

<?php

/*========================================================

= 文件名称: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

<?php

//使用前请先引入类文件,如:

include ‘cls.sys_crypt.php‘;

$sc new SysCrypt(‘phpwms‘);

$text ‘110‘;

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

print(‘<br>‘);

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

?>

本文标题: Discuz论坛写出的php加密解密处理类(代码+使用方法)
来自淘代码转载请注明

时间: 2024-10-03 15:01:28

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

php加密解密功能类

这两天突发奇想想要用php写一个对日常项目加密以及解密的功能,经过努力简单的封装了一个对php代码进行加密解密的类,一些思想也是来自于网络,初步测试用着还行,可以实现对指定项目的加密以及解密(只针对本类中加密的解密)过程,在这里分享给大家,水平比较有限那里有错误还希望指出,共同提高,一下会给大家列出来实现的思想以及源码. 加密过程:读取源文件,base64_encode进行加密,利用混排得到的52个大小写字母作为秘钥进行替换$c=strtr(密文,对应待替换的字母,要替换成的字母);将两个秘钥和

php加密解密处理类

[PHP]代码 <?php /*=========================================================== = 版权协议: = GPL (The GNU GENERAL PUBLIC LICENSE Version 2, June 1991) =------------------------------------------------------------ = 文件名称:cls.sys_crypt.php = 摘 要:php加密解密处理类 =

基于RSA的加密/解密示例C#代码

在C#程序中,大家可能比较熟悉的方式是md5加密解密方式,对RSA可能并不是很熟悉, 下面就说一下RSA加密和解密的算法: using System;using System.Security.Cryptography;using System.Text;class RSACSPSample{    static void Main()    {        try        {            string str_Plain_Text = "How are you?How are

代码示例:一些简单技巧优化JavaScript编译器工作详解,让你写出高性能运行的更快JavaScript代码

告诉你一些简单的技巧来优化JavaScript编译器工作,从而让你的JavaScript代码运行的更快.尤其是在你游戏中发现帧率下降或是当垃圾回收器有大量的工作要完成的时候. 单一同态: 当你定义了一个两个参数的函数,编译器会接受你的定义,如果函数参数的类型.个数或者返回值的类型改变编译器的工作会变得艰难.通常情况下,单一同态的数据结构和个数相同的参数会让你的程序会更好的工作. function example(a, b) { // 期望a,b都为数值类型 console.log(++a * +

DES加密解密帮助类

public class DESCrypto { /// <summary> /// 初始化des实例秘钥及向量 /// </summary> /// <param name="key"></param> /// <returns></returns> private static DESCryptoServiceProvider InitDESInstance(string key) { DESCryptoSer

加密解密工具类(Java,DES)

一个Java版的DES加密工具类,可以用来进行网络数据传输加密,保存密码的时候进行加密. import java.security.Key; import java.security.spec.AlgorithmParameterSpec; import javax.crypto.Cipher; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; import javax.crypto.spec.I

PHP和.NET通用的加密解密函数类,均使用3DES加解密 .

以下为php代码 <PRE class=PHP name="code"> </PRE><PRE class=PHP name="code">PHP加解密函数:</PRE><PRE class=PHP name="code"> </PRE><PRE class=PHP name="code"> function encrypt($string)

Base64加密解密原理以及代码实现(VC++)

Base64加密解密原理以及代码实现 转自:http://blog.csdn.net/jacky_dai/article/details/4698461 1. Base64使用A--Z,a--z,0--9,+,/ 这64个字符.    2. 编码原理:将3个字节转换成4个字节( (3 X 8) = 24 = (4 X 6) )先读入3个字节,每读一个字节,左移8位,再右移四次,每次6位,这样就有4个字节了.    3. 解码原理:将4个字节转换成3个字节.先读入4个6位(用或运算),每次左移6位

MD5加密解密帮助类

using System; using System.Security.Cryptography; using System.Text; namespace Maticsoft.DBUtility { /// <summary> /// DES加密/解密类. /// </summary> public class DESEncrypt { public DESEncrypt() { } #region ========加密======== /// <summary> /