discuz 经典php加密解密函数 authcode 解析

康盛的 authcode 函数可以说对中国的PHP界作出了重大贡献。包括康盛自己的产品,以及大部分中国使用PHP的公司都用这个函数进行加密,authcode 是使用异或运算进行加密和解密。 原理如下,假如: 加密 明文:1010 1001 密匙:1110 0011 密文:0100 1010 得出密文0100 1010,解密之需和密匙异或下就可以了 解密 密文:0100 1010 密匙:1110 0011 明文:1010 1001 并没有什么高深的算法,密匙重要性很高,所以,关键在于怎么生成密匙。 那我们一起看下康盛的authcode怎么做的吧 <div class="dp-highlighter">
<div class="bar">
<div class="tools">Php代码 <a title="复制代码" href="http://willko.javaeye.com/blog/325137#" target="_blank">

      
  1.   
  2.   
  3.   
  4.   
  5. authcode(, = , = , = 0) {   
  6.       
  7.      = 4;   
  8.        
  9.       
  10.      = md5( ? : []);   
  11.        
  12.       
  13.      = md5((,16));   
  14.       
  15.      = md5((,16,16));   
  16.       
  17.      = ? ( == ? (,): (md5(microtime()),-)) : ;   
  18.       
  19.      = .md5(.);   
  20.      = ();   
  21.       
  22.       
  23.      = == ? ((,)) : sprintf(, ? + time() : 0).(md5(.),16).;   
  24.      = ();   
  25.      = ;   
  26.      = range(0,255);   
  27.      = ();   
  28.       
  29.     ( = 0; <= 255; ++) {   
  30.         [] = ord([ % ]);   
  31.      }   
  32.       
  33.     ( = = 0; < 256; ++) {   
  34.          = ( + [] + []) % 256;   
  35.          = [];   
  36.         [] = [];   
  37.         [] = ;   
  38.      }   
  39.       
  40.     ( = = = 0; < ; ++) {   
  41.          = ( + 1) % 256;   
  42.          = ( + []) % 256;   
  43.          = [];   
  44.         [] = [];   
  45.         [] = ;   
  46.           
  47.          .= (ord([]) ^ ([([] + []) % 256]));   
  48.      }   
  49.     ( == ) {   
  50.           
  51.          0 验证数据有效性   
  52.           
  53.           
  54.         (((,10) == 0 || (,10) - time() > 0) && (,16) == (md5((,26).),16)) {   
  55.              (,26);   
  56.          } {   
  57.              ;   
  58.          }   
  59.      } {   
  60.           
  61.           
  62.          .(,());   
  63.      }   
  64. }  

相关文章

**本资源可免费获取,请至尾部读阅!**Discuz素材资源交易论...
分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风...
最近工作需要IIS,自己的电脑又是Windows7系统,找了下安装的...
首先就是discuz,用起来真的是特别的好用,搭建的网站真的非...
1.找到图片路径拼装文件首先打开根目录下的template目录找到...
打开NavicatforMySQL找到数据表 pre_ucenter_members 把密...