function Authcode ($string, $operation = ' DECODE ', $key = ", $expiry = 0) { if ($operation = = ' DECODE ') { $string = Str_replace (' [A] ', ' + ', $string); $string = Str_replace (' [b] ', ' & ', $string); $string = Str_replace (' [C] ', '/', $string); } $ckey _length = 4; $key = MD5 ($key? $key: ' Livcmsencryption '); $keya = MD5 (substr ($key, 0, 16)); $KEYB = MD5 (substr ($key, 16, 16)); $KEYC = $ckey _length? ($operation = = ' DECODE '? substr ($string, 0, $ckey _length): substr (MD5 (Microtime ()),-$ckey _length)): "; $cryptkey = $keya. MD5 ($keya. $KEYC); $key _length = strlen ($cryptkey); $string = $operation = = = ' DECODE '? Base64_decode (substr ($string, $ckey _length)): sprintf ('%010d ', $expiry? $expiry + Time (): 0). substr (MD5 ($string. $keyb ), 0, (+). $string; $string _length = strlen ($string); $result = "; $box = Range (0, 255); $rndkey = Array (); for ($i = 0; $i <= 255; $i + +) { $rndkey [$i] = Ord ($cryptkey [$i% $key _length]); } for ($j = $i = 0; $i < $i + +) { $j = ($j + $box [$i] + $rndkey [$i])% 256; $tmp = $box [$i]; $box [$i] = $box [$j]; $box [$j] = $tmp; } for ($a = $j = $i = 0; $i < $string _length; $i + +) { $a = ($a + 1)% 256; $j = ($j + $box [$a])% 256; $tmp = $box [$a]; $box [$a] = $box [$j]; $box [$j] = $tmp; $result. = Chr (ord ($string [$i]) ^ ($box [($box [$a] + $box [$j])% 256])); } if ($operation = = ' DECODE ') { if (substr ($result, 0, ten) = = 0 | | substr ($result, 0,)-time () > 0) && substr ($result, ten, +) = = SUBSTR (MD 5 (substr ($result, +). $keyb), 0, 16)) { Return substr ($result, 26); } else { Return '; } } else { $ustr = $keyc. Str_replace (' = ', ' ', Base64_encode ($result)); $ustr = str_replace (' + ', ' [a] ', $ustr); $ustr = Str_replace (' & ', ' [b] ', $USTR); $ustr = Str_replace ('/', ' [C] ', $USTR); return $ustr; } } |