<?php/* * @param $string the string to encrypt or resolve * @param $operation Encrypt/decrypt encode encryption, DECODE decrypt * @param $key encryption/Resolution factor */function AUTHC Ode ($string, $operation = ' DECODE ', $key = ' 12345678 ', $expiry = 0) {$ckey _length = 4; $key = MD5 ($key); $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 (MD5 ($result, $keyb), 0, (+)) {return substr ($result, 26); } else {return '; }} else {return $KEYC. Str_replace (' = ', ' ', Base64_encode ($result)); }//encryption $ok $str = ' 123456 '; $ok = Authcode ($str, ' ENCODE '); Echo $ok, "<br/>";//Decrypt $ok 1$ok1 = Authcode ($ok, ' DE CODE '); echo $ok 1;? >
PHP encryption and Decryption Method 2