康盛的 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">
??
-
??
-
??
-
??
-
??
-
authcode(, = , = , = 0) { ??
-
??????
-
???? = 4; ??
- ???? ??
-
??????
-
???? = md5( ? : []); ??
- ???? ??
-
??????
-
???? = md5((,16)); ??
-
??????
-
???? = md5((,16,16)); ??
-
??????
-
???? = ? ( == ? (,): (md5(microtime()),-)) : ; ??
-
??????
-
???? = .md5(.); ??
-
???? = (); ??
-
??????
-
??????
-
???? = == ? ((,)) : sprintf(, ? + time() : 0).(md5(.),16).; ??
-
???? = (); ??
-
???? = ; ??
-
???? = range(0,255); ??
-
???? = (); ??
-
??????
-
????( = 0; <= 255; ++) { ??
-
????????[] = ord([ % ]); ??
- ???? } ??
-
??????
-
????( = = 0; < 256; ++) { ??
-
???????? = ( + [] + []) % 256; ??
-
???????? = []; ??
-
????????[] = []; ??
-
????????[] = ; ??
- ???? } ??
-
??????
-
????( = = = 0; < ; ++) { ??
-
???????? = ( + 1) % 256; ??
-
???????? = ( + []) % 256; ??
-
???????? = []; ??
-
????????[] = []; ??
-
????????[] = ; ??
-
??????????
-
???????? .= (ord([]) ^ ([([] + []) % 256])); ??
- ???? } ??
-
????( == ) { ??
-
??????????
-
??????????
-
??????????
-
??????????
-
????????(((,10) == 0 || (,10) - time() > 0) && (,16) == (md5((,26).),16)) { ??
-
???????????? (,26); ??
-
???????? } { ??
-
???????????? ; ??
- ???????? } ??
-
???? } { ??
-
??????????
-
??????????
-
???????? .(,,()); ??
- ???? } ??
-
}??
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|