Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php eval(gzinflate(base64_decode('FZq3EqtqtoTzU3XeYbI5MwQID3UjrPDeJ7fwHuHd0w87UIgK1t+r+..

Decoded Output download


function int32($n) {
        while ($n >= 2147483648) $n -= 4294967296;
        while ($n <= -2147483649) $n += 4294967296;
        return (int)$n;
    }
/*
power by rocky

*/
eval(gzinflate(base64_decode('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')));
?><?php

eval(gzinflate(base64_decode('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')));
?><??><?php

eval(gzinflate(base64_decode('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')));
?><??>
<?php
function int32($n) {
        while ($n >= 2147483648) $n -= 4294967296;
        while ($n <= -2147483649) $n += 4294967296;
        return (int)$n;
    }
class stringchange {
function shr32($x, $bits){   
    //    
    if($bits <= 0){   
        return $x;   
    }   
    if($bits >= 32){   
        return 0;   
    }   
    //   
    $bin = decbin($x);   
    $l = strlen($bin);   
    //32032   
    if($l > 32){   
        $bin = substr($bin, $l - 32, 32);   
    }elseif($l < 32){   
        $bin = str_pad($bin, 32, '0', STR_PAD_LEFT);   
    }   
    //0   
    return bindec(str_pad(substr($bin, 0, 32 - $bits), 32, '0', STR_PAD_LEFT));   
}   
function byteArrayToShort($b) {
        return ($b[0] << 8)
                + ($b[1] & 0xFF);
       }

 function  byteArrayToInt($b) {
 						               
 						               return int32(($b[0] << 24)) + (($b[1] & 0xFF) << 16) + (($b[2] & 0xFF) << 8) + ($b[3] & 0xFF);
	               
      }

 function    shortToByteArray($s) {
        $shortBuf = array(0,0);
       for($i=0;$i<2;$i++) {
       $offset = (2 - 1 -$i)*8;
       $shortBuf[$i] = ($this->shr32($s,$offset))& 0xFF;
       }
       return $shortBuf;
      }
function    intToByteArray($value){
        $b = array(0,0,0,0);
         for ($i = 0; $i < 4; $i++) {
                $offset = (4 - 1 - $i) * 8;
                 $b[$i] =  ($this->shr32($value,$offset)) & 0xFF;
          }
          return $b;
       }
function    toByte($c) {
	$str="0123456789ABCDEF";
   for($i=0;$i<16;$i++)
   {
   		if($str[$i]==$c)
   		{
   			return $i;	
   		}
   	}
   return 0;
}
function    toByte2($c) {
	$str="0123456789ABCDEF";
   for($i=0;$i<16;$i++)
   {
   		if(substr($str,$i,1)==$c)
   		{
   			return $i;	
   		}
   	}
   return 0;
}

function   hexStringToByte($hex) {
    $len = strlen($hex);
    $result = array ();
    $achar= array();
    for($i=0;$i<$len;$i++)
    {
    	$achar[$i]=$hex[$i];
    }
   // $achar = toCharArray($hex);
   for ( $i = 0; $i < $len; $i++) {
    $pos = $i * 2;
    $result[$i] =  $this->toByte($achar[$pos]) << 4 | $this->toByte($achar[$pos + 1]);
   }
   return $result;
}

function   hexStringToByte2($hex) {
	 
	
    $len = strlen($hex);
     
    $result = array ();
    $achar= array();
    for($i=0;$i<$len;$i++)
    {
    	$achar[$i]=substr($hex,$i,1);
    }
   // $achar = toCharArray($hex);
   for ( $i = 0; $i < $len/2; $i++) {
    $pos = $i * 2;
    $result[$i] = ( $this->toByte2($achar[$pos]) * 16 )+ ( $this->toByte2($achar[$pos + 1]));
   }
   return $result;
}

function    bytesToHexString($bArray) {
    
    $sb="";
    
   for ($i = 0; $i <count($bArray); $i++) {
    
    $sTemp = dechex ($bArray[$i]);
    
    if (strlen($sTemp) < 2)
    {
     $sTemp="0" . $sTemp;
      
   }
   
    $sb=$sb . $sTemp;
   } 
  
   return strtoupper($sb);
}
}
class tea {
 
function shr32($x, $bits){   
    //    
    if($bits <= 0){   
        return $x;   
    }   
    if($bits >= 32){   
        return 0;   
    }   
    //   
    $bin = decbin($x);   
    $l = strlen($bin);   
    //32032   
    if($l > 32){   
        $bin = substr($bin, $l - 32, 32);   
    }elseif($l < 32){   
        $bin = str_pad($bin, 32, '0', STR_PAD_LEFT);   
    }   
    //0   
    return bindec(str_pad(substr($bin, 0, 32 - $bits), 32, '0', STR_PAD_LEFT));   
} 
//
    function   encrypt($content, $offset, $key, $times) { //times
        $a1 = array(0,0,0,0);
        $a2 = array(0,0,0,0);

        for ($a = 0; $a < 4; $a++) {
            $a1[$a] = $content[$a + $offset];
        }
        for ($a = 0; $a < 4; $a++) {
            $a2[$a] = $content[$a + 4 + $offset];
        }

				$tempInt = array(0,0);//byteToInt(encryptContent, offset);
        
        
        
        $sg = new stringchange();
        $tempInt[0] = $sg->byteArrayToInt($a1);
        $tempInt[1] = $sg->byteArrayToInt($a2);
 
         $y =int32($tempInt[0]);
         $z =int32($tempInt[1]);
        $sum = 0;
        $delta = 0x9e3779b9; //
        $a = $key[0];
        $b = $key[1];
        $c = $key[2];
        $d = $key[3];

        if ($delta < 0) {
            $delta =  $delta + 4294967296;
        }

        $templong = 0;
         $tempz = 0; 
         $tempz2 = 0;

        for ($i = 0; $i < $times; $i++) {
            $sum =   $sum + $delta;
           
            if ($sum < 0) {
                $sum = $sum + 4294967296;
            }
            if ($sum > 4294967296) {
                $sum = $sum - 4294967296;
            }

            //int z1, z2, z3;
            $z1=int32($z1);
            $z2=int32($z2);
            $z3=int32($z3);

            // y += ((z << 4) + a) ^ (z + sum) ^ ((z >> 5) + b);
           // int y1, y2, y3, y4;
            $y1=int32($y1);
            $y2=int32($y2);
            $y3=int32($y3);
            $y4=int32($y4);
            
            $y1 = $z << 4;

            if ($y1 < 0) {
                $templong = $y1 + 4294967296;
            } else {
                $templong = $y1;
            }
     
            $y1 = int32( ($templong + $a));
                        
            $templong = $z + $sum;
            $y2 = int32( $templong);
            $y3 =$this->shr32($z,5); 
           
            if ($y3 < 0) {
                $templong = $y3 + 4294967296;
            } else {
                $templong = $y3;
            } 
            
           
            $tempz = $templong + $b;

            if ($tempz > 4294967296) {
                $tempz = $tempz - 4294967296;
            }

						
            $y3 = int32( $tempz);
            $y4 = $y1 ^ $y2 ^ $y3;
            if ($y4 < 0) {
                $tempz2 = $y4 + 4294967296;
            } else {
                $tempz2 = $y4;
            }

            if ($y < 0) {
                $templong =  $y + 4294967296;
            } else {
                $templong = $y;
            }

            $templong=$templong +$tempz2;

            if ($templong > 4294967296) {
                           $templong = $templong - 4294967296;
            }
            $y = int32( ($templong ));

            //z += ((y << 4) + c) ^ (y + sum) ^ ((y >> 5) + d);

            $z1 = $y << 4;
            if ($z1 < 0) {
                $templong = $z1 + 4294967296;
            } else {
                $templong = $z1;
            }

            $templong = $templong + $c;

            if ($templong > 4294967296) {
                $templong = $templong - 4294967296;
            }

            $z1 = int32( ($templong));

            $templong = $y;

            if ($templong < 0) {
                $templong = $templong + 4294967296;
            }

            $templong = $templong + $sum;

            if ($templong < 0) {
                $templong = $templong + 4294967296;
            }

            if (templong > 4294967296) {
                $templong = $templong - 4294967296;
            }

            $z2 = int32( $templong);

            $z3 = $this->shr32($y , 5);
            if ($z3 < 0) {
                $templong = $z3 + 4294967296;
            } else {
                $templong = $z3;
            }

            $templong = $templong + $d;

            if ($templong > 4294967296) {
                $templong = $templong - 4294967296;
            }
            $z3 = int32( ($templong));

            $tempz = $z;

            if ($tempz < 0) {
                $tempz = $tempz + 4294967296;
            }
            if ($tempz > 4294967296) {
                $tempz = $tempz - 4294967296;
            }

            $z4 = 0;
            $z4 = ($z1 ^ $z2 ^ $z3);

            if ($z4 < 0) {
                $templong = $z4 + 4294967296;
            } else {
                $templong = $z4;
            }

            $tempz = $tempz + $templong;
            if ($tempz > 4294967296) {
                $tempz = $tempz - 4294967296;
            }
            $z = int32( $tempz);
  					
        }

        if ($y < 0) {
            $templong = $y + 4294967296;
        } else {
            $templong = $y;
        }

 					

        $tempInt[0] = int32( $this->TEA_ntoh($templong, true));

           
        if ($z < 0) {
            $templong = $z + 4294967296;
        } else {
            $templong = $z;
        }

        $tempInt[1] = int32( $this->TEA_ntoh($templong, true));

	   
        
        return $this->ByteToByte($this->intToByte($tempInt, 0));

    }

//
    function  decrypt($encryptContent, $offset, $key,$times) {
        $a1 = array(0,0,0,0);
        $a2 = array(0,0,0,0);

        for ($a = 0; $a < 4; $a++) {
            $a1[$a] = $encryptContent[$a + $offset];
        }
        for ($a = 0; $a < 4; $a++) {
            $a2[$a] = $encryptContent[$a + 4 + $offset];
        }

        $tempInt = array(0,0); //byteToInt(encryptContent, offset);
        $sg = new stringchange();
        $tempInt[0] = $sg->byteArrayToInt($a1);
        $tempInt[1] = $sg->byteArrayToInt($a2);

        $y = int32($tempInt[0]);
         $z = int32($tempInt[1]);
        
        $sum = 0xE3779B90;
        $delta = 0x9e3779b9; //
        $a = $key[0];
        $b = $key[1];
        $c = $key[2];
        $d = $key[3];
  
        if ($sum < 0) {
            $sum = $sum + 4294967296;
        }
        if ($delta < 0) {
            $delta =  $delta + 4294967296;
        }

        $templong = 0;
         $tempz = 0;
         $tempz2 = 0;
$z1=0;
$z2=0;
$z3=0;
$y1=0;
$y2=0;
$y3=0;
$y4=0;
        for ($i = 0; $i < $times; $i++) {
 					
 				
            //z1, z2, z3;
            $z1=int32($z1);
            $z2=int32($z2);
            $z3=int32($z3);
            
            $z1 = $y << 4;
           
          	   
            if ($z1 < 0) {
                $templong =  $z1 + 4294967296;
            } else {
                $templong = $z1;
            }

            $z1 = int32( $templong + $c);
					
            $templong = $y;

            if ($templong < 0) {
                $templong = $templong + 4294967296;
            }

            $templong = $templong + $sum;

            if ($templong < 0) {
                $templong = $templong + 4294967296;
            }
            $z2 = int32( $templong);

            $z3 = $this->shr32($y , 5);
            if ($z3 < 0) {
                $templong = $z3 + 4294967296;
            } else {
                $templong = $z3;
            }

            $z3 = int32( ($templong + $d));
	
            $tempz = $z;

            if ($tempz < 0) {
                $tempz = $tempz + 4294967296;
            }
             $z4 = 0;
            $z4 = ($z1 ^ $z2 ^ $z3);

            if ($z4 < 0) {
                $templong = $z4 + 4294967296;
            } else {
                $templong = $z4;
            }

            $tempz = $tempz - $templong;

            $z = int32( $tempz);

            // z -=    ((y << 4) + c)        ^ (y + sum) ^ ((y >> 5) + d);
            //int y1, y2, y3, y4;
				
						$y1=int32($y1);
						$y2=int32($y2);
						$y3=int32($y3);
						$y4=int32($y4);
					
            $y1 = $z << 4;

            if ($y1 < 0) {
                $templong = $y1 + 4294967296;
            } else {
                $templong = $y1;
            }

            $y1 = int32( ($templong + $a));

            $templong = $z + $sum;
            $y2 = int32( $templong);
            $y3 = $this->shr32($z,5);
            if ($y3 < 0) {
                $templong = $y3 + 4294967296;
            } else {
                $templong = $y3;
            }
            $tempz = $templong + $b;
            $y3 = int32( $tempz);
            $y4 = $y1 ^ $y2 ^ $y3;
            if ($y4 < 0) {
                $tempz2 = $y4 + 4294967296;
            } else {
                $tempz2 = $y4;
            }
            //y -= ((z << 4) + a) ^ (z + sum) ^ ((z >> 5) + b);
            if ($y < 0) {
                $templong = $y + 4294967296;
            } else {
                $templong = $y;
            }

            $y = int32( ($templong - $tempz2));

            $sum = $sum -  $delta;
            if ($sum < 0) {
                $sum = $sum + 4294967296;
            }
            
          
        }

        if ($y < 0) {
            $templong =  $y + 4294967296;
        } else {
            $templong = $y;
        }

        $tempInt[0] = int32( $this->TEA_ntoh($templong, true));

        if ($z < 0) {
            $templong = $z + 4294967296;
        } else {
            $templong = $z;
        }

        $tempInt[1] = int32( $this->TEA_ntoh($templong, true));

        // return tempInt;
        return $this->ByteToByte($this->intToByte($tempInt, 0));
    }

    function TEA_ntoh($netlong, $_isNetByte /*= false*/) {
        

        $x = ($netlong & 0xff) << 24;
        $x |= ($netlong & 0xff00) << 8;
        $x |= $this->shr32(($netlong & 0xff0000),8);// >> 8;
        $x |= $this->shr32(($netlong & 0xff000000),24);// >> 24;


					if ($_isNetByte==true)
					{
						return $x;
						}
						else
						{
							return $netlong;
						}
        
    }

//byte[]int[]
    function   byteToInt($content, $offset) {

        $result =array(); //2n == n  content.length / 4 == content.length  2
        for ($i = 0, $j = $offset; $j < count(content); $i++, $j += 4) {
            $result[$i] = transform($content[$j + 3]) |
                        transform($content[$j + 2]) << 8 |
                        transform($content[$j + 1]) << 16 |
                        int32( $content[j] << 24);
        }
        return $result;

    }

    function ByteToByte($b) {

        $i = count($b);
        if ($i % 4 != 0) {
            return $b;
        }

        $re = array ();

        for ( $j = 0; $j < count($b); ) {
            $re[$j] = $b[$j + 3];
            $re[$j + 1] = $b[$j + 2];
            $re[$j + 2] = $b[$j + 1];
            $re[$j + 3] = $b[$j];

            $j = $j + 4;
        }

        return $re;
    }

//int[]byte[]
    function  intToByte($content, $offset) {
       $result = array(); //2n == n  content.length * 4 == content.length  2
        for ($i = 0, $j = $offset; $j < (count($content)<<2); $i++, $j += 4) {
            $result[$j + 3] =   ($content[$i] & 0xff);
            $result[$j + 2] =   (($content[$i] >> 8) & 0xff);
            $result[$j + 1] =   (($content[$i] >> 16) & 0xff);
            $result[$j] =   (($content[$i] >> 24) & 0xff);
        }
        return $result;
    }

//
    function transform($temp) {
         $tempInt = int32( $temp);
        if ($tempInt < 0) {
            $tempInt += 256;
        }
        return $tempInt;
    }

    //TEA
    function  encryptByTea($info) {
        $KEY = array(1952801070, 778923887,1848520307, 1700867630);
        $result =array();// new byte[info.length];
        for ($offset = 0; $offset < count($info); $offset += 8) {
            $tempEncrpt = $this->encrypt($info, $offset, $KEY, 16);
             
            for($j=0;$j<8;$j++)
            {
            	$result[$offset + $j]=$tempEncrpt[$j];
            //System.arraycopy(tempEncrpt, 0, result, offset, 8);
          	}
        }

				 
        return $result;
    }

//TEA
    function  decryptByTea($secretInfo) {
        //$decryptStr = null;
        $result =array();// new byte[secretInfo.length];
        $KEY = array(1952801070, 778923887,1848520307, 1700867630);
        for ($offset = 0; $offset <count($secretInfo); $offset += 8) {
            $decryptStr =$this->decrypt($secretInfo, $offset, $KEY, 16);
            for($j=0;$j<8;$j++)
            {
            	$result[$offset + $j]=$decryptStr[$j];
            //System.arraycopy(tempEncrpt, 0, result, offset, 8);
          	}
        }

        
        return $result;
    }

		
}

class otpdatetime
{
	public $year;
	public $month;
	public $day;
	public $hour;
	public $minute;
	public $second;
	 function __construct()  {
	 
	 $this->year=2009;
	 $this->month=1;
	 $this->day=1;
	 $this->hour=0;
	 $this->minute=0;
	 $this->second=0;
	}
	function getdatetimeString()
	{
		return $this->year . "-" . $this->month . "-" . $this->day . " " . $this->hour . ":" . $this->minute . ":" . $this->second;
	}
}

/*
   	$info= array(8);
       for($a=0;$a<8;$a++)
       {
       	$info[$a]=60 + $a;
       	}
 $t=new tea();
 
 

  $info2= $t->encryptByTea($info);
  
   
       
  
   $info= $t->decryptByTea($info2);
  
   for($i=0;$i<8;$i++)
   {
   	echo $info[$i];
   	}
*/
 class tokeninfo {

     public  $KeyLen;
     public  $Key;
     public  $InitTimeYear;
     public  $InitTimeMonth;
     public  $InitTimeDay;
     public  $InitTimeHour;
     public  $InitTimeMinute;
     public  $InitTimeSecond;
     public  $LastLoginTotalMovingValue;
     public  $LastLoginSecond;
     public  $TokenTimeOffsetMinute;
     public  $TokenTimeOffsetSecond;
     public  $OTPType;
     public  $OTPChangeTime;
     public  $OTPCheckPassType;
     public  $othersByte;

     function __construct()  {

         $this->KeyLen = 0;
         $this->Key = array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);

         $this->InitTimeYear = 0;
         $this->InitTimeMonth = 0;
         $this->InitTimeDay = 0;
         $this->InitTimeHour = 0;
         $this->InitTimeMinute = 0;
         $this->InitTimeSecond = 0;
         $this->LastLoginTotalMovingValue = 0;
         $this->LastLoginSecond = 0;
         $this->TokenTimeOffsetMinute = 0;
         $this->TokenTimeOffsetSecond = 0;
         $this->OTPType = 0;
         $this->OTPChangeTime = 0;
         $this->OTPCheckPassType = 0;
         $this->othersByte = array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);

     }


     function  settokeninfo($info) {
         $sg = new stringchange();

         $k =array(0,0) ;
         $k[0] = $info[1];
         $k[1] = $info[0];
         $this->KeyLen =$sg->byteArrayToShort($k);
					
         $i = 0;
         for ($i = 0; $i < $this->KeyLen ; $i++) {
             $this->Key[$i] = $info[$i + 2];
             
         }
         $k[0] = $info[53];
         $k[1] = $info[52];

         $this->InitTimeYear =   $sg->byteArrayToShort($k);

         $this->InitTimeMonth = $info[54];
         $this->InitTimeDay = $info[55];
         $this->InitTimeHour = $info[56];
         $this->InitTimeMinute = $info[57];
         $this->InitTimeSecond = $info[58];
         $k1 = array(0,0,0,0);
         $k1[0] = $info[62];
         $k1[1] = $info[61];
         $k1[2] = $info[60];
         $k1[3] = $info[59];
         $this->LastLoginTotalMovingValue = $sg->byteArrayToInt($k1);
         $this->LastLoginSecond = $info[63];

         $k1[0] = $info[67];
         $k1[1] = $info[66];
         $k1[2] = $info[65];
         $k1[3] = $info[64];

         $this->TokenTimeOffsetMinute = $sg->byteArrayToInt($k1);
         $this->TokenTimeOffsetSecond = $info[68];
         $this->OTPType = $info[69];
         $this->OTPChangeTime = $info[70];
         $this->OTPCheckPassType = $info[71];

         for ($i = 0; $i < 48; $i++) {
             $this->othersByte[$i] = $info[$i + 72];
         }
         
         return $this;

     }

     function   gettokeninfo($stinfo) {
           $sg = new stringchange();
           $info[] = array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
           $k = array(0,0,0,0);
           $sk=array(0,0);

         $sk = $sg->shortToByteArray($stinfo->KeyLen);
 
         $info[0] = $sk[1];
         $info[1] = $sk[0];
 
         
         for ($i = 0; $i < 50 ; $i++) {
             $info[$i + 2] = $stinfo->Key[$i];
         }

         $sk = $sg->shortToByteArray($stinfo->InitTimeYear);

         $info[52] = $sk[1];
         $info[53] = $sk[0];

         $info[54] = $stinfo->InitTimeMonth;
         $info[55] = $stinfo->InitTimeDay;
         $info[56] = $stinfo->InitTimeHour;
         $info[57] = $stinfo->InitTimeMinute;
         $info[58] = stinfo>InitTimeSecond;

         $k = $sg->intToByteArray($stinfo->LastLoginTotalMovingValue);

         $info[59] = $k[3];
         $info[60] = $k[2];
         $info[61] = $k[1];
         $info[62] = $k[0];

         $info[63] = $stinfo->LastLoginSecond;
         $k = $sg->intToByteArray($stinfo->TokenTimeOffsetMinute);
         $info[64] = $k[3];
         $info[65] = $k[2];
         $info[66] = $k[1];
         $info[67] = $k[0];

         $info[68] = $stinfo->TokenTimeOffsetSecond;
         $info[69] = $stinfo->OTPType;
         $info[70] = $stinfo->OTPChangeTime;
         $info[71] = $stinfo->OTPCheckPassType;


         for ($i = 0; $i < 48; $i++) {
             $info[$i + 72] = $stinfo->othersByte[$i];
         }

         return $info;
     }


}
 
class seamoonapi
{
   
   //  $strSeamoon ="KingKey20050328.88888888889999999999";
    // $strSNStringKey = "KingKey20050328.88888888889999999999";
  

function ConvertHex2Bin($hexdata)
{
	$bindata = "";
	for ($i=0;$i<strlen($hexdata);$i+=2)
	{
		$bindata.=chr(hexdec(substr($hexdata,$i,2)));
	}
	return $bindata;
}
function HashHmac($algo, $data, $key, $raw_output = false)
{
	$algo = strtolower($algo);
	$pack = 'H'.strlen($algo('test'));
	$size = 64;
	$opad = str_repeat(chr(0x5C), $size);
	$ipad = str_repeat(chr(0x36), $size);

	if (strlen($key) > $size)
	{
		$key = str_pad(pack($pack, $algo($key)), $size, chr(0x00));
	}
	else
	{
		$key = str_pad($key, $size, chr(0x00));
	}

	for ($i = 0; $i < strlen($key) - 1; $i++)
	{
		$opad[$i] = $opad[$i] ^ $key[$i];
		$ipad[$i] = $ipad[$i] ^ $key[$i];
	}

	$output = $algo($opad.pack($pack, $algo($ipad.$data)));

	return ($raw_output) ? pack($pack, $output) : $output;
}

function ComputeOathTruncate($hash, $length = 6)
{
	// Convert to decimal
	foreach(str_split($hash,2) as $hex)
	{
		$hmac_result[]=hexdec($hex);
	}

	// Find offset
	$offset = $hmac_result[19] & 0xf;

	// Algorithm from RFC
	return
	substr(str_repeat('0',$length).((
		(($hmac_result[$offset+0] & 0x7f) << 24 ) |
		(($hmac_result[$offset+1] & 0xff) << 16 ) |
		(($hmac_result[$offset+2] & 0xff) << 8 ) |
		($hmac_result[$offset+3] & 0xff)
	) % pow(10,$length)),-$length); // & 0x7FFFFFFF before the pow()
}


function ComputeOathTOTP($key, $counter)
{
	// Counter
	//the counter value can be more than one byte long, so we need to go multiple times
	$cur_counter = array(0,0,0,0,0,0,0,0);
	for($i=7;$i>=0;$i--)
	{
		$cur_counter[$i] = pack ('C*', $counter);
		$counter = $counter >> 8;
	}
	$bin_counter = implode($cur_counter);
	// Pad to 8 chars
	if (strlen ($bin_counter) < 8)
	{
		$bin_counter = str_repeat(chr(0), 8 - strlen($bin_counter)) . $bin_counter;
	}

	// HMAC hash
	$hash = $this->HashHmac('sha1', $bin_counter, $key);
	return $hash;
}

function GetOTPPassword($key,$timesecond,$interval,$passwordlen)
{
	 
//$seed_bin = ConvertHex2Bin($key);
for($i=0;$i<count($key);$i++)
{
	$seed_bin.=chr($key[$i]);
}
 

$password_len = $passwordlen; 
$timer = intval($timesecond/$interval);
 
	return	$this->ComputeOathTruncate($this->ComputeOathTOTP($seed_bin,$timer),$password_len);
}

function getOTPpassword2($key,$interval,$passwordlen,$itimes) 
{
	for($i=0;$i<count($key);$i++)
{
	$seed_bin.=chr($key[$i]);
}

$password_len = $passwordlen; 
 
return	$this->ComputeOathTruncate($this->ComputeOathTOTP($seed_bin,$itimes),$password_len);

}
function CheckOTPpassword($key,$interval,$passwordlen,$password,$itimes) 
{
	$timesecond=time();
	
	//$itimes=10 * (60/$interval);
    	 
		if($password==$this->GetOTPPassword($key,($timesecond + $itimes*$interval),$interval,$passwordlen))
		{
			 
			return 1;	
		}	
	 
	 
	return 0;
}

 function ITSecurity_CheckCB_v6($pCB)//KingKey_HOTP_CheckCB
{
        //cMd5InputStr, cMd5ResultStr, cTmpCB;
        //int  totoa_md5StrLen,i, iCBLen,j;
				$strSeamoon="KingKey20050328.88888888889999999999";
       
        $iCBLen = strlen($pCB);

        $j = 0;
        $cTmpCB=trim($pCB) ;

        $pCB= $cTmpCB;

        $iCBLen =strlen($pCB);

 
        if(substr($pCB,6,1)  == "6")
        {
                if($iCBLen != 291)
                {
                        return -1;
                }

               $cMd5InputStr= $strSeamoon;

                $totoa_md5StrLen = strlen($strSeamoon) ;

                $cMd5InputStr=$cMd5InputStr . substr($pCB,0,17);

                $totoa_md5StrLen = $totoa_md5StrLen  + 17;
 

                $cMd5InputStr=$cMd5InputStr . substr($pCB,49,strlen($pCB));
                
                $totoa_md5StrLen = $totoa_md5StrLen + 242;

                   
                 $cMd5ResultStr=strtoupper(md5($cMd5InputStr)) ;
			 
                 if (substr($pCB,17,32)==$cMd5ResultStr)
                 {

                     return 1;
                 }
                 else
                 {
                     return -1;
                 }
        }
        else
        {
                return -1;
        }
}



    function KingKey_HOTP_GetInfoFromCB($pInitCB)
    {
             

            if(strlen($pInitCB) != 291)
            {
                    return 0;
            }

            $tmpByteInit =array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
            $tmpByteResult=array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);

         //$TmpLen;
         //String tmpStr;

         $tmpStr =substr($pInitCB,49, 289);

         //

         $t = new tea();

         $cg = new stringchange();
         $tmpByteInit = $cg->hexStringToByte($tmpStr);

         $tmpByteResult = $t->decryptByTea($tmpByteInit);

				$tinfo=new tokeninfo();
        $tinfo=$tinfo->settokeninfo($tmpByteResult);

         return $tinfo;

}



 function     KingKey_HOTP_GetNewCB($pcInitCB, $stTokenInfo)
     {
        
     //TEA  encrypt
    $pcResultCB=$pcInitCB;
            
     $tmpByteInit =array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
     $tmpByteResult=array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);

  

     $tmpByteInit = $stTokenInfo->gettokeninfo($stTokenInfo);

		for($i=0;$i<count($tmpByteInit);$i++)
		{
			//echo $tmpByteInit[$i];
			//echo "<br>";
		}

     $t = new tea();
     $tmpByteResult = $t->encryptByTea($tmpByteInit);
     
     $cg = new stringchange();
     $tmpStr = $cg->bytesToHexString($tmpByteResult);
 
 	    
     $pcResultCB = substr($pcInitCB,0, 49) . $tmpStr . "==";
 
 		$strSNStringKey = "KingKey20050328.88888888889999999999";
    
     $cMd5InputStr = $strSNStringKey;
 
     $cMd5InputStr = $cMd5InputStr . substr($pcInitCB,0, 17);
 
     $cMd5InputStr = $cMd5InputStr . substr($pcResultCB,49, 289);
  
     $cMd5ResultStr = strtoupper(md5($cMd5InputStr));
 
     $pcResultCB = substr($pcResultCB,0, 17) . $cMd5ResultStr .  substr($pcResultCB,49,291);
     return $pcResultCB;

}
 //
function   KingKey_HOTP_GetSpaceDayBetweenLastTime($SpaceMovingValue, $IntervalInSecond)
{
        

        if($SpaceMovingValue <= 0)
        {
                return 0;
        }

        if(($IntervalInSecond != 60) && ($IntervalInSecond != 30) && ($IntervalInSecond != 20))
        {
                return 0;
        }

        $lTotalSeconds = $SpaceMovingValue * $IntervalInSecond;

        $TotalDays =(int)($lTotalSeconds / 86400); //86400

        return $TotalDays;
}
 function  GetTotalMovingValueOfNow($IntervalInSecond)
   {
           $TotalMovingValue = 0;
           $iTotalSeconds = 0;

           if(($IntervalInSecond != 60) && ($IntervalInSecond != 30) && ($IntervalInSecond != 20))
           {
                   return 0;
           }

  	 				 
           $TotalMovingValue =(int)( time() / $IntervalInSecond);

           return $TotalMovingValue;
   }

 function  checkpassword($pInitCB,$pPassword)
{
       
         $stHotpInfo=new tokeninfo();
        
        //byte	OTP6Len[]=new byte[6],OTP8Len[]=new byte[8];
        //int		iLastTimebettwenDays;
        //int		iTimeWindow;
        $OTPCompareResul=1;

        $sg=new stringchange();

        if(($pInitCB=="") || ($pPassword == ""))
        {
                return "-1";
        }
        
        if(strlen($pInitCB)<200)
        {
        	return "-1";
        }
        
         if(substr($pInitCB,6,1) == "7")
        {
             $seaotp=new seamoonsea();
             return $seaotp->checkpasswordsea($pInitCB,$pPassword);   
        }

        $checkInitCBResult= $this->ITSecurity_CheckCB_v6($pInitCB);
 
        $pResultCB= $pInitCB;

        if($checkInitCBResult != 1)
        {
                return "-1";
        }

        if($pInitCB[6] != "6")
        {
                return "-1";
        }


        if(strlen($pPassword)!=6 && strlen($pPassword) !=8)
        {
                return "300";
        }

				$stHotpInfo=$this->KingKey_HOTP_GetInfoFromCB($pInitCB);
        if($stHotpInfo =="")
        {
                return "-1";
        }

        $lTotalMovingValue =$this->GetTotalMovingValueOfNow($stHotpInfo->OTPChangeTime);
 
        $iLastTimebettwenDays = $this->KingKey_HOTP_GetSpaceDayBetweenLastTime($lTotalMovingValue - $stHotpInfo->LastLoginTotalMovingValue, $stHotpInfo->OTPChangeTime );
 
        // < 1
        if($iLastTimebettwenDays <= 30)
        {
                $iTimeWindow = 5;
        }
        else if(($iLastTimebettwenDays > 30) && ($iLastTimebettwenDays <= 90)) // 1~3
        {
                $iTimeWindow = 10;
        }
        else if(($iLastTimebettwenDays > 90) && ($iLastTimebettwenDays <= 180)) // 3~6
        {
                $iTimeWindow = 15;
        }
        else if(($iLastTimebettwenDays > 180) && ($iLastTimebettwenDays <= 360)) // 6~12
        {
                $iTimeWindow = 30;
        }
        else // 12
        {
                $iTimeWindow = 45;
        }

	
			if($stHotpInfo->OTPChangeTime==30)
			{
				$iTimeWindow = $iTimeWindow * 2;
			}
			elseif ($stHotpInfo->OTPChangeTime==20)
			{
				  $iTimeWindow = $iTimeWindow * 3;
				}
				else if($stHotpInfo->OTPChangeTime==60)
				{
					 $iTimeWindow = $iTimeWindow;
				}
				else
				{
					return "300";
				}
	
         if($stHotpInfo->OTPType==1)
         {
         	$OTPLen=6;
        }
        else
        {
        	$OTPLen=8;
        }

 //$stHotpInfo->LastLoginTotalMovingValue;

 
        	 for($i=-1 * $iTimeWindow;$i<$iTimeWindow;$i++)
        	 {
        	  
        	 		   if($lTotalMovingValue + $i <= $stHotpInfo->LastLoginTotalMovingValue)
                {
                        continue;
                }
 
							if( $this->CheckOTPpassword($stHotpInfo->Key,$stHotpInfo->OTPChangeTime,$OTPLen,$pPassword,$stHotpInfo->TokenTimeOffsetMinute +$i)==1)
                {
                        $stHotpInfo->TokenTimeOffsetMinute = $stHotpInfo->TokenTimeOffsetMinute + $i;
                        $stHotpInfo->LastLoginTotalMovingValue = $lTotalMovingValue;

                        //get new CB
                                              
                        $pResultCB=$this->KingKey_HOTP_GetNewCB($pInitCB, $stHotpInfo);
												 
                        return $pResultCB;
                }
 
        
				}

       return 0;
 
       
}

 function  passwordsyn($pInitCB,$pPassword)
{
       
         $stHotpInfo=new tokeninfo();
        
        //byte	OTP6Len[]=new byte[6],OTP8Len[]=new byte[8];
        //int		iLastTimebettwenDays;
        //int		iTimeWindow;
        $OTPCompareResul=1;

        $sg=new stringchange();

        if(($pInitCB=="") || ($pPassword == ""))
        {
                return "-1";
        }

				if(substr($pInitCB,6,1) == "7")
        {
             $seaotp=new seamoonsea();
             return $seaotp->passwordsynsea($pInitCB,$pPassword);   
        }

        $checkInitCBResult= $this->ITSecurity_CheckCB_v6($pInitCB);
 
        $pResultCB= $pInitCB;

        if($checkInitCBResult != 1)
        {
                return "-1";
        }

        if($pInitCB[6] != "6")
        {
                return "-1";
        }


        if(strlen($pPassword)!=6 && strlen($pPassword) !=8)
        {
                return "300";
        }

				$stHotpInfo=$this->KingKey_HOTP_GetInfoFromCB($pInitCB);
        if($stHotpInfo =="")
        {
                return "-1";
        }

        $lTotalMovingValue =$this->GetTotalMovingValueOfNow($stHotpInfo->OTPChangeTime);
 
        $iLastTimebettwenDays = $this->KingKey_HOTP_GetSpaceDayBetweenLastTime($lTotalMovingValue - $stHotpInfo->LastLoginTotalMovingValue, $stHotpInfo->OTPChangeTime );
 
        // < 18
        if($iLastTimebettwenDays <= 540)
        {
                $iTimeWindow = 60;
        }         
        else // 18
        {
                $iTimeWindow = 90;
        }

	
			if($stHotpInfo->OTPChangeTime==30)
			{
				$iTimeWindow = $iTimeWindow * 2;
			}
			elseif ($stHotpInfo->OTPChangeTime==20)
			{
				  $iTimeWindow = $iTimeWindow * 3;
				}
				else if($stHotpInfo->OTPChangeTime==60)
				{
					 $iTimeWindow = $iTimeWindow;
				}
				else
				{
					return "300";
				}
	
         if($stHotpInfo->OTPType==1)
         {
         	$OTPLen=6;
        }
        else
        {
        	$OTPLen=8;
        }

 //$stHotpInfo->LastLoginTotalMovingValue;

 
        	 for($i=-1 * $iTimeWindow;$i<$iTimeWindow;$i++)
        	 {
        	  
        	 		   if($lTotalMovingValue + $i <= $stHotpInfo->LastLoginTotalMovingValue)
                {
                        continue;
                }
 
							if( $this->CheckOTPpassword($stHotpInfo->Key,$stHotpInfo->OTPChangeTime,$OTPLen,$pPassword,$stHotpInfo->TokenTimeOffsetMinute +$i)==1)
                {
                        $stHotpInfo->TokenTimeOffsetMinute = $stHotpInfo->TokenTimeOffsetMinute + $i;
                        $stHotpInfo->LastLoginTotalMovingValue = $lTotalMovingValue;

                        //get new CB
                                              
                        $pResultCB=$this->KingKey_HOTP_GetNewCB($pInitCB, $stHotpInfo);
												 
                        return $pResultCB;
                }
 
        
				}

       return 0;
 
       
}



 
}

 class seamoonsea
 {
 	function checkcb($pcb)
 	{
 		if(strlen($pcb)!=400)
 		{
 			return -1;
 		}
 		
 		$cMd5InputStr="ShenzhenSeamoonCommunicationTechnologyCo,Ltd,20050328.88888888889999999999";
 		$cMd5InputStr=$cMd5InputStr . substr($pcb,0,49) . substr($pcb,81,strlen($pcb));
 		
 		if(substr($pcb,49,32)==strtoupper(md5($cMd5InputStr)))
  	{ 		
 			return 1;
 		}
 		else
 		{ 		
 			return -1; 		
 		}
 	}
 	function checkpasswordsea($pcb,$password)
 	{
 		 
 		if ($this->checkcb($pcb)!=1 )
 		{
 			reutrn -1;	
 		}
 		
 		$pResultCB=array();
 		
 		for($tempk=0;$tempk<strlen($pcb);$tempk++)
 		{
 			$pResultCB[$tempk]= substr($pcb,$tempk,1);	 			 
 		}
 		 
 		$pucKey;
   	$InitDayTime=new otpdatetime();
		$LastDayTime=new otpdatetime();
		$stNow=new otpdatetime();
		$iMinuteOffSet;
		$iSecondOffSet;
		$ucPswType;
		$ucLastLoninState;
		$ucLastPsw;
		$iPswChangeTime;
		$iPswActiveTime;
		$ucPswActiveType;
 		
 		$iKeyLen=(ord(substr($pcb,91,1))-48) * 100 + (ord(substr($pcb,92,1))-48)* 10 + (ord(substr($pcb,93,1))-48); 
 		for($i=0;$i<5;$i++)
 		{
 			$pucKey[$i]=substr($pcb,94+$i,1);
 		}
 		for($i=0;$i<$iKeyLen-5;$i++)
 		{
 			$pucKey[$i+5 ]=substr($pcb,124+$i,1);
 		}
 		 
 		 $stNow->year=date("Y");  
 		 $stNow->month=date("m") ;
 		 $stNow->day=date("d");
 		 $stNow->hour= date("H")  ;
 		 $stNow->minute=date("i") ;
 
 		
 		 $InitDayTime->year=(ord(substr($pcb,81,1))-48) * 1000 + (ord(substr($pcb,82,1))-48) * 100 + (ord(substr($pcb,89,1))-48) * 10 + (ord(substr($pcb,90,1))-48);  
 		 $InitDayTime->month=(ord(substr($pcb,112,1))-48) * 10 + (ord(substr($pcb,113,1))-48)  ;
 		 $InitDayTime->day=(ord(substr($pcb,116,1))-48) * 10 + (ord(substr($pcb,117,1))-48)  ;
 		 $InitDayTime->hour=(ord(substr($pcb,85,1))-48) * 10 + (ord(substr($pcb,86,1))-48)  ;
 		 $InitDayTime->minute=(ord(substr($pcb,108,1))-48) * 10 + (ord(substr($pcb,109,1))-48);
 		 $InitDayTime->second=(ord(substr($pcb,120,1))-48) * 10 + (ord(substr($pcb,121,1))-48);
 		 
 		 $LastDayTime->year=(ord(substr($pcb,110,1))-48) * 1000 + (ord(substr($pcb,111,1))-48) * 100 + (ord(substr($pcb,114,1))-48) * 10 + (ord(substr($pcb,115,1))-48);  
 		 $LastDayTime->month=(ord(substr($pcb,118,1))-48) * 10 + (ord(substr($pcb,119,1))-48)  ;
 		 $LastDayTime->day=(ord(substr($pcb,87,1))-48) * 10 + (ord(substr($pcb,88,1))-48)  ;
 		 $LastDayTime->hour=(ord(substr($pcb,106,1))-48) * 10 + (ord(substr($pcb,107,1))-48)  ;
 		 $LastDayTime->minute=(ord(substr($pcb,83,1))-48) * 10 + (ord(substr($pcb,84,1))-48);
 		 $LastDayTime->second=(ord(substr($pcb,122,1))-48) * 10 + (ord(substr($pcb,123,1))-48);

 		 $iMinuteOffSet=(ord(substr($pcb,100,1))-48) * 10 + (ord(substr($pcb,101,1))-48) * 10 + (ord(substr($pcb,102,1))-48);  
 		 
 		 if( substr($pcb,99,1)=="2")
 		 {
 		 	$iMinuteOffSet=$iMinuteOffSet * -1;
 			}
 			
 			$iSecondOffSet= (ord(substr($pcb,104,1))-48) * 10 + (ord(substr($pcb,105,1))-48);  

 			if(substr($pcb,99,1)=="2")
 		  {
 		 		$iSecondOffSet=$iSecondOffSet * -1;
 			}
 			
 			$ucPswType=ord(substr($pcb,224,1))-48;
 			$ucLastLoninState=ord(substr($pcb,386,1))-48;
 			
 			$ucLastPsw[0]= ord(substr($pcb,225,1));
 			$ucLastPsw[1]= ord(substr($pcb,226,1));
 			$ucLastPsw[2]= ord(substr($pcb,393,1));
 			$ucLastPsw[3]= ord(substr($pcb,394,1));
 			$ucLastPsw[4]= ord(substr($pcb,395,1));
 			$ucLastPsw[5]= ord(substr($pcb,396,1));
 			$ucLastPsw[6]=0;
 			
 			$iPswChangeTime=(ord(substr($pcb,387,1))-48) * 1000 + (ord(substr($pcb,388,1))-48) * 100 + (ord(substr($pcb,389,1))-48) * 10 + (ord(substr($pcb,390,1))-48);  
 			$iPswActiveTime= (ord(substr($pcb,391,1))-48) * 10 +  (ord(substr($pcb,392,1))-48);
 			$ucPswActiveType=ord(substr($pcb,397,1))-48; 
 			 
 			 
 		
			 $nowtimecount=(int)((time()-mktime($InitDayTime->hour,$InitDayTime->minute,$InitDayTime->second,$InitDayTime->month,$InitDayTime->day,$InitDayTime->year))/60);
			 $lasttimecount=(int)(
			 mktime($LastDayTime->hour,$LastDayTime->minute,$LastDayTime->second,$LastDayTime->month,$LastDayTime->day,$LastDayTime->year)
			 /60-mktime($InitDayTime->hour,$InitDayTime->minute,$InitDayTime->second,$InitDayTime->month,$InitDayTime->day,$InitDayTime->year)/60);
			 
			 
			 
			 $iTimeWindow=(int)($lasttimecount/(60*24));
			 
			 if($iTimeWindow<60)
			 {
			 	  $iTimeWindow=5;
			 }
			 else if($iTimeWindow>=60 && $iTimeWindow<360)
			 {
			 	$iTimeWindow=30;
			}
			else
			{
				$iTimeWindow=60;
			}
			
			
			if($iPswChangeTime!=60)
			{
				return -1;
			}
			
			for($i=-1*$iTimeWindow;$i<=$iTimeWindow;$i++)
			{
				if (($nowtimecount + $iMinuteOffSet + $i) <=($lasttimecount + $iMinuteOffSet)) {
                         
                        continue;
                    }
                             
             if( $this->SMGetPsw($pucKey,$nowtimecount + $iMinuteOffSet + $i)==$password)
             {
             	   
             	   				$pResultCB[110] =(int) ($stNow->year / 1000 );
                        $pResultCB[111] =(int) (($stNow->year % 1000) / 100 );
                        $pResultCB[114] =(int)(($stNow->year % 100) / 10 );
                        $pResultCB[115] =(int)((($stNow->year % 10) ));

                        $pResultCB[118] =(int)( $stNow->month / 10);
                        $pResultCB[119] =(int)( ($stNow->month % 10) );

                        $pResultCB[87] = (int)($stNow->day / 10);
                        $pResultCB[88] = (int)(($stNow->day % 10) );

                        $pResultCB[106] = (int) ($stNow->hour / 10 );
                        $pResultCB[107] =(int)( ($stNow->hour % 10));

                        $pResultCB[83] =(int)( $stNow->minute / 10);
                        $pResultCB[84] =(int)(($stNow->minute % 10)) ;

                        $pResultCB[122] = '0';
                        $pResultCB[123] = '0';

											

                        //
                        $pResultCB[100] = (int) (($i + $iMinuteOffSet) / 100);
                        $pResultCB[101] = (int) ((($i + $iMinuteOffSet) % 100) / 10);
                        $pResultCB[102] = (int) (($i + $iMinuteOffSet) % 10);

                        if ($i + $iMinuteOffSet > 0) {
                            $pResultCB[99] = '1';
                        } else {
                            $pResultCB[99] = '2';
                        }

                        //
                        for ($i = 103; $i < 106; $i++) {
                            $pResultCB[$i] = '0';
                        }
                        
                        $pResultCB[386] = '1';
                   			
                   			$strSeamoon="ShenzhenSeamoonCommunicationTechnologyCo,Ltd,20050328.88888888889999999999";
                   			
                        $cMd5InputStr = $strSeamoon;
                                                                       
                        for ($i = 0; $i < 49; $i++) {
                            $cMd5InputStr = $cMd5InputStr . ($pResultCB[$i]);
                        }
                      
                        for ($i = 0; $i < 319; $i++) {
                            $cMd5InputStr = $cMd5InputStr . ($pResultCB[81 +$i]);
                        }

                        
                        
                        $cMd5ResultStr =strtoupper(md5($cMd5InputStr));
                         
                        for ($i = 0; $i < 32; $i++) {
                            $pResultCB[49 + $i] = substr($cMd5ResultStr,$i,1) ;
                        }
 
 												$returnstr="";
 				
												for($i=0;$i<400;$i++)
												{
													$returnstr= $returnstr . $pResultCB[$i];
													
												}
												 
                        return $returnstr; 
             }               
				
			}

 		  	return "0";	 
 	}
 	
 	
 	 	function passwordsynsea($pcb,$password)
 	{
 		 
 		if ($this->checkcb($pcb)!=1 )
 		{
 			reutrn -1;	
 		}
 		
 		$pResultCB=array();
 		
 		for($tempk=0;$tempk<strlen($pcb);$tempk++)
 		{
 			$pResultCB[$tempk]= substr($pcb,$tempk,1);	 			 
 		}
 		 
 		$pucKey;
   	$InitDayTime=new otpdatetime();
		$LastDayTime=new otpdatetime();
		$stNow=new otpdatetime();
		$iMinuteOffSet;
		$iSecondOffSet;
		$ucPswType;
		$ucLastLoninState;
		$ucLastPsw;
		$iPswChangeTime;
		$iPswActiveTime;
		$ucPswActiveType;
 		
 		$iKeyLen=(ord(substr($pcb,91,1))-48) * 100 + (ord(substr($pcb,92,1))-48)* 10 + (ord(substr($pcb,93,1))-48); 
 		for($i=0;$i<5;$i++)
 		{
 			$pucKey[$i]=substr($pcb,94+$i,1);
 		}
 		for($i=0;$i<$iKeyLen-5;$i++)
 		{
 			$pucKey[$i+5 ]=substr($pcb,124+$i,1);
 		}
 		 
 		 $stNow->year=date("Y");  
 		 $stNow->month=date("m") ;
 		 $stNow->day=date("d");
 		 $stNow->hour= date("H")  ;
 		 $stNow->minute=date("i") ;
 
 		
 		 $InitDayTime->year=(ord(substr($pcb,81,1))-48) * 1000 + (ord(substr($pcb,82,1))-48) * 100 + (ord(substr($pcb,89,1))-48) * 10 + (ord(substr($pcb,90,1))-48);  
 		 $InitDayTime->month=(ord(substr($pcb,112,1))-48) * 10 + (ord(substr($pcb,113,1))-48)  ;
 		 $InitDayTime->day=(ord(substr($pcb,116,1))-48) * 10 + (ord(substr($pcb,117,1))-48)  ;
 		 $InitDayTime->hour=(ord(substr($pcb,85,1))-48) * 10 + (ord(substr($pcb,86,1))-48)  ;
 		 $InitDayTime->minute=(ord(substr($pcb,108,1))-48) * 10 + (ord(substr($pcb,109,1))-48);
 		 $InitDayTime->second=(ord(substr($pcb,120,1))-48) * 10 + (ord(substr($pcb,121,1))-48);
 		 
 		 $LastDayTime->year=(ord(substr($pcb,110,1))-48) * 1000 + (ord(substr($pcb,111,1))-48) * 100 + (ord(substr($pcb,114,1))-48) * 10 + (ord(substr($pcb,115,1))-48);  
 		 $LastDayTime->month=(ord(substr($pcb,118,1))-48) * 10 + (ord(substr($pcb,119,1))-48)  ;
 		 $LastDayTime->day=(ord(substr($pcb,87,1))-48) * 10 + (ord(substr($pcb,88,1))-48)  ;
 		 $LastDayTime->hour=(ord(substr($pcb,106,1))-48) * 10 + (ord(substr($pcb,107,1))-48)  ;
 		 $LastDayTime->minute=(ord(substr($pcb,83,1))-48) * 10 + (ord(substr($pcb,84,1))-48);
 		 $LastDayTime->second=(ord(substr($pcb,122,1))-48) * 10 + (ord(substr($pcb,123,1))-48);

 		 $iMinuteOffSet=(ord(substr($pcb,100,1))-48) * 10 + (ord(substr($pcb,101,1))-48) * 10 + (ord(substr($pcb,102,1))-48);  
 		 
 		 if( substr($pcb,99,1)=="2")
 		 {
 		 	$iMinuteOffSet=$iMinuteOffSet * -1;
 			}
 			
 			$iSecondOffSet= (ord(substr($pcb,104,1))-48) * 10 + (ord(substr($pcb,105,1))-48);  

 			if(substr($pcb,99,1)=="2")
 		  {
 		 		$iSecondOffSet=$iSecondOffSet * -1;
 			}
 			
 			$ucPswType=ord(substr($pcb,224,1))-48;
 			$ucLastLoninState=ord(substr($pcb,386,1))-48;
 			
 			$ucLastPsw[0]= ord(substr($pcb,225,1));
 			$ucLastPsw[1]= ord(substr($pcb,226,1));
 			$ucLastPsw[2]= ord(substr($pcb,393,1));
 			$ucLastPsw[3]= ord(substr($pcb,394,1));
 			$ucLastPsw[4]= ord(substr($pcb,395,1));
 			$ucLastPsw[5]= ord(substr($pcb,396,1));
 			$ucLastPsw[6]=0;
 			
 			$iPswChangeTime=(ord(substr($pcb,387,1))-48) * 1000 + (ord(substr($pcb,388,1))-48) * 100 + (ord(substr($pcb,389,1))-48) * 10 + (ord(substr($pcb,390,1))-48);  
 			$iPswActiveTime= (ord(substr($pcb,391,1))-48) * 10 +  (ord(substr($pcb,392,1))-48);
 			$ucPswActiveType=ord(substr($pcb,397,1))-48; 
 			 
 			 
 		
			 $nowtimecount=(int)((time()-mktime($InitDayTime->hour,$InitDayTime->minute,$InitDayTime->second,$InitDayTime->month,$InitDayTime->day,$InitDayTime->year))/60);
			 $lasttimecount=(int)(
			 mktime($LastDayTime->hour,$LastDayTime->minute,$LastDayTime->second,$LastDayTime->month,$LastDayTime->day,$LastDayTime->year)
			 /60-mktime($InitDayTime->hour,$InitDayTime->minute,$InitDayTime->second,$InitDayTime->month,$InitDayTime->day,$InitDayTime->year)/60);
			 
			 
			 
			 $iTimeWindow=90;
			 
			 
			
			
			if($iPswChangeTime!=60)
			{
				return -1;
			}
			
			for($i=-1*$iTimeWindow;$i<=$iTimeWindow;$i++)
			{
				if (($nowtimecount + $iMinuteOffSet + $i) <=($lasttimecount + $iMinuteOffSet)) {
                         
                        continue;
                    }
                             
             if( $this->SMGetPsw($pucKey,$nowtimecount + $iMinuteOffSet + $i)==$password)
             {
             	   
             	   				$pResultCB[110] =(int) ($stNow->year / 1000 );
                        $pResultCB[111] =(int) (($stNow->year % 1000) / 100 );
                        $pResultCB[114] =(int)(($stNow->year % 100) / 10 );
                        $pResultCB[115] =(int)((($stNow->year % 10) ));

                        $pResultCB[118] =(int)( $stNow->month / 10);
                        $pResultCB[119] =(int)( ($stNow->month % 10) );

                        $pResultCB[87] = (int)($stNow->day / 10);
                        $pResultCB[88] = (int)(($stNow->day % 10) );

                        $pResultCB[106] = (int) ($stNow->hour / 10 );
                        $pResultCB[107] =(int)( ($stNow->hour % 10));

                        $pResultCB[83] =(int)( $stNow->minute / 10);
                        $pResultCB[84] =(int)(($stNow->minute % 10)) ;

                        $pResultCB[122] = '0';
                        $pResultCB[123] = '0';

											

                        //
                        $pResultCB[100] = (int) (($i + $iMinuteOffSet) / 100);
                        $pResultCB[101] = (int) ((($i + $iMinuteOffSet) % 100) / 10);
                        $pResultCB[102] = (int) (($i + $iMinuteOffSet) % 10);

                        if ($i + $iMinuteOffSet > 0) {
                            $pResultCB[99] = '1';
                        } else {
                            $pResultCB[99] = '2';
                        }

                        //
                        for ($i = 103; $i < 106; $i++) {
                            $pResultCB[$i] = '0';
                        }
                        
                        $pResultCB[386] = '1';
                   			
                   			$strSeamoon="ShenzhenSeamoonCommunicationTechnologyCo,Ltd,20050328.88888888889999999999";
                   			
                        $cMd5InputStr = $strSeamoon;
                                                                       
                        for ($i = 0; $i < 49; $i++) {
                            $cMd5InputStr = $cMd5InputStr . ($pResultCB[$i]);
                        }
                      
                        for ($i = 0; $i < 319; $i++) {
                            $cMd5InputStr = $cMd5InputStr . ($pResultCB[81 +$i]);
                        }

                        
                        
                        $cMd5ResultStr =strtoupper(md5($cMd5InputStr));
                         
                        for ($i = 0; $i < 32; $i++) {
                            $pResultCB[49 + $i] = substr($cMd5ResultStr,$i,1) ;
                        }
 
 												$returnstr="";
 				
												for($i=0;$i<400;$i++)
												{
													$returnstr= $returnstr . $pResultCB[$i];
													
												}
												 
                        return $returnstr; 
             }               
				
			}

 		  	return "0";	 
 	}
 	
 	function SMGetPsw($key,$iMinutes)
{
	$i=0;
	 
	for($i=0;$i<count($key);$i++)
	{
		$shain[$i]= ord($key[$i]);
	}
	
	$strSeamoon = "ShenzhenSeamoon20050328";
	
	for($j=0;$j<strlen($strSeamoon);$j++)
	{
		$shain[$i]= ord(substr($strSeamoon,$j,1));
		$i++;
		
  }
   
  $shain[$i]= (int)(($iMinutes & 0xFF000000) >> 24);  
  $shain[$i+1]= (int)(($iMinutes & 0x00FF0000) >> 16);
  $shain[$i+2]= (int)(($iMinutes & 0x0000FF00) >> 8);
  $shain[$i+3]= (int)(($iMinutes & 0x000000FF));
  
  $i=$i+4;
  $shain[$i]=0;
  
  $shain2="";
  for($j=0;$j<=$i;$j++)
  {
  	$shain2=$shain2 . chr($shain[$j]);
  	  	 
  }   
 
 $re= sha1($shain2);
  
  $re=strtoupper($re);
 
  
  $sg=new stringchange();
  
  $bytere=$sg->hexStringToByte2($re);
  
 return $this->SMGetpPswFromSha("SEAMOON20050328",1,$bytere);
   
}


function   SMGetpPswFromSha($pSecret,
                                  $ucKeyType,
                                  $ucMessage_Digest
                                  ) {
        $i=0;
        $ch='1';
        $ulTmpSum=array ();
        $ulTmpSumLen=0;
        
        $Message_Digest =array ();

        $ucMessage_Digest2=array ();
      
    	for ($kk=0;$kk<20;$kk++)
    	{

        $ucMessage_Digest2[$kk]=$ucMessage_Digest[$kk]& 0x0ff;
    	}

        

        for ($i = 0; $i < 20; $i++) {
            $Message_Digest[$i] = $ucMessage_Digest2[$i];
             
        }


        switch ($ucKeyType) {
        case 0:
            for ($i = 0; $i < 4; $i++) {
                $ulTmpSum[$i] = $Message_Digest[$i]
                              + $Message_Digest[4 + $i]
                              + $Message_Digest[8 + $i]
                              + $Message_Digest[12 + $i]
                              + $Message_Digest[16 + $i];
            }

            $ulTmpSumLen = 4;

            break;

        case 1:
        case 2:
            for ($i = 0; $i < 4; $i++) {
                $ulTmpSum[$i] = $Message_Digest[$i]
                              + $Message_Digest[6 + $i]
                              + $Message_Digest[12 + $i];
            }

            $ulTmpSum[4] = $Message_Digest[16] + $Message_Digest[17];
            $ulTmpSum[5] = $Message_Digest[18] + $Message_Digest[19];

            $ulTmpSumLen = 6;

            break;

        case 3:
        case 4:
            for ($i = 0; $i < 8; $i++) {
                $ulTmpSum[$i] = $Message_Digest[$i]
                              + $Message_Digest[8 + $i]
                              + $Message_Digest[16]
                              + $Message_Digest[17]
                              + $Message_Digest[18]
                              + $Message_Digest[19];
            }

            $ulTmpSumLen = 8;

            break;

        default:

            // printf("
ERROR");
            return "";
        }
    
        for ($i = 0; $i < $ulTmpSumLen; $i++) {
            switch ($ucKeyType) {
            case 1:
            case 3:
            		
                switch ((int) ($ulTmpSum[$i] % 10)) {
                case 0:
                    $ch = '0';
                    break;

                case 1:
                    $ch = '1';
                    break;

                case 2:
                    $ch = '2';
                    break;

                case 3:
                    $ch = '3';
                   
                    break;

                case 4:
                    $ch = '4';
                   
                    break;

                case 5:
                    $ch = '5';
                    
                    break;

                case 6:
                    $ch = '6';
                    break;

                case 7:
                    $ch = '7';
                    break;

                case 8:
                    $ch = '8';
                    break;

                case 9:
                    $ch = '9';
                    break;

                default:
                    $ch = 'Z';
                    break;
                }

                break;

            default:
                switch ((int) ($ulTmpSum[$i] % 28)) {
                case 0:
                    $ch = 'A';
                    break;

                case 1:
                    $ch = 'B';
                    break;

                case 2:
                    $ch = 'C';
                    break;

                case 3:
                    $ch = 'D';
                    break;

                case 4:
                    $ch = 'E';
                    break;

                case 5:
                    $ch = 'F';
                    break;

                case 6:
                    $ch = 'G';
                    break;

                case 7:
                    $ch = 'H';
                    break;

                case 8:
                    $ch = 'J';
                    break;

                case 9:
                    $ch = 'K';
                    break;

                case 10:
                    $ch = 'L';
                    break;

                case 11:
                    $ch = 'M';
                    break;

                case 12:
                    $ch = 'N';
                    break;

                case 13:
                    $ch = 'P';
                    break;

                case 14:
                    $ch = 'Q';
                    break;

                case 15:
                    $ch = 'R';
                    break;

                case 16:
                    $ch = 'S';
                    break;

                case 17:
                    $ch = 'T';
                    break;

                case 18:
                    $ch = 'W';
                    break;

                case 19:
                    $ch = 'X';
                    break;

                case 20:
                    $ch = 'Y';
                    break;

                case 21:
                    $ch = '3';
                    break;

                case 22:
                    $ch = '4';
                    break;

                case 23:
                    $ch = '5';
                    break;

                case 24:
                    $ch = '6';
                    break;

                case 25:
                    $ch = '7';
                    break;

                case 26:
                    $ch = '8';
                    break;

                case 27:
                    $ch = '9';

                    break;

                default:
                    $ch = 'Z';
                    break;
                }

                break;
            }

            $psw =$psw . $ch;
        }


        return $psw;
        
    }
 	
 	}

?><?

Did this file decode correctly?

Original Code

<?php
eval(gzinflate(base64_decode('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')));
?>

Function Calls

gzinflate 4
base64_decode 4

Variables

None

Stats

MD5 aa6ad2fe2e308fd7d412a54221a55ab2
Eval Count 4
Decode Time 473 ms