海运的博客

解密函数

发布时间:December 8, 2013 // 分类:PHP // No Comments

<?php
   function jspassword($p, $vc, $vt) {
      $p = strtoupper(md5($p));
      for ($i = 0; $i < strlen($p); $i = $i + 2) {
         $temp .= '\x' . substr($p, $i, 2);
      }
      return strtoupper(md5(strtoupper(md5(hex2asc($temp) . hex2asc($vt))) . $vc));
   } 
   function hex2asc($str) {
      $str = join('', explode('\x', $str));
      for ($i = 0;$i < strlen($str);$i += 2) {
         $data.= chr(hexdec(substr($str, $i, 2)));
      }
      return $data;
   } 

   function getGTK($skey){
      $hash = 5381;
      for($i=0;$i<strlen($skey);++$i){
         $hash += ($hash << 5) + utf8_unicode($skey[$i]);
      }
      return $hash & 0x7fffffff;
   }

   function utf8_unicode($c) {                 
      switch(strlen($c)) {                 
         case 1:                 
         return ord($c);                 
         case 2:                 
         $n = (ord($c[0]) & 0x3f) << 6;                 
         $n += ord($c[1]) & 0x3f;                 
         return $n;                 
         case 3:                 
         $n = (ord($c[0]) & 0x1f) << 12;                 
         $n += (ord($c[1]) & 0x3f) << 6;                 
         $n += ord($c[2]) & 0x3f;                 
         return $n;                 
         case 4:                 
         $n = (ord($c[0]) & 0x0f) << 18;                 
         $n += (ord($c[1]) & 0x3f) << 12;                 
         $n += (ord($c[2]) & 0x3f) << 6;                 
         $n += ord($c[3]) & 0x3f;                 
         return $n;                 
      }                 
   }

   function get_g_tk($skey){
      if(!$skey) return false;
      $hash = 5381;
      for($i=0;$i<strlen($skey);++$i){
         $hash += ($hash << 5) + ord($skey[$i]);
      }
      return $hash & 0x7fffffff;
   }
   echo jspassword('password','!DZW','\x00\x00\x00\x00\xa2\xfc\x7a\x80')."\n";
   echo getGTK("@gmj2sEfSM")."\n";
?

标签:none

发表评论

分类
最新文章
最近回复
  • 海运: 换回了5.3内核,5.8用5.3 dtb虽然能开机且负载正常,但也有其它问题,不建议使用。
  • shangyatsen: 后面的内核高精度计时器的问题使用5.4或者5.3的dtb会正常吗?我也发现有这个日志出现。感觉...
  • 海运: 缺少相应模块?
  • lee: 你好,我执行这条语句 iptables -t mangle -A PREROUTING -m ...
  • 海运: 只更新rootfs,不更新内核,我在用5.3配19.10,懒得再升最新版了,很稳定。 注意:更...
  • lyly168: 这是手动挂载吧,请问自动挂载要怎么弄?
  • swswsw1: 请问升级后,内核更新了吗?听说N1只有在5.0.2的内核下才稳定,怕升级了之后功耗太高
  • 海运: LOG_LEVEL是配置文件变量,本文配置使用systemd启动在EnvironmentFil...
  • 1: 我源碼沒有任何修改,同樣編譯的在X86上可以正常運行。然後原封不動編譯aarch64就提示以上錯誤。
  • 海运: 你配置变量有问题?LOG_LEVEL? https://github.com/dani-gar...