加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > CMS系统 > Discuz > 正文

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

发布时间:2020-12-14 01:45:06 所属栏目:Discuz 来源:网络整理
导读:康盛的 authcode 函数可以说对中国的PHP界作出了重大贡献。包括康盛自己的产品,以及大部分中国使用PHP的公司都用这个函数进行加密,authcode 是使用异或运算进行加密和解密。 原理如下,假如: 加密 明文:1010 1001 密匙:1110 0011 密文:0100 1010 得出

康盛的 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. }??

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读