$ Authkey = ''; /** * @ Param string $ string: Enter the plaintext (or ciphertext) to be encrypted (or decrypted) * @ Param string $ operation: 'decode' or others. by default, this parameter indicates decryption, and other parameters include encryption. * @ Param string $ key: encryption/decryption key * @ Param int $ expiry: validity period */ Function authcode ($ string, $ operation = 'Decode', $ key = '', $ expiry = 0 ){ Global $ authkey; $ Ckey_length = 4; $ Key = md5 ($ key! = ''? $ Key: $ authkey ); $ 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, 16). $ string; $ String_length = strlen ($ string ); $ Result = ''; $ Box = range (1, 0,255 ); $ Rndkey = array (); For ($ I = 0; $ I <= 255; $ I ++ ){ $ Rndkey [$ I] = ord ($ cryptkey [$ I % $ key_length]); } For ($ j = $ I = 0; I I <256; $ 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, 10) = 0 | substr ($ result, 0, 10)-time ()> 0) & substr ($ result, 10, 16) = substr (md5 (substr ($ result, 26 ). $ keyb), 0, 16 )){ Return substr ($ result, 26 ); } Else { Return ''; } } Else { Return $ keyc. str_replace ('=', '', base64_encode ($ result )); } } $ Str = '000000 '; $ Key = '000000 '; Echo "Plaintext:". $ str; Echo" "; Echo "key:". $ key; $ Encode = authcode ($ str, '11', $ key ); Echo" "; Echo "encrypted ciphertext:". $ encode; Echo" "; $ Decode = authcode ($ encode, 'Decode', $ key ); Echo "decrypted plaintext:". $ decode; /* End of php */ |