Código fuente finito dinámico
/**
*? Función de cifrado
*?@paramstring$string ¿Texto sin formato? ¿aún? Texto cifrado
*?@paramstring$operación? DECODE significa descifrado, otros significa cifrado.
*?@paramstring$key? Clave
*?@paraminteger? $ expira el período de validez del texto cifrado
*/
¿Función? authcode($cadena,?$operación?=?decodificar',?$clave?=?'',?$expire?=?0)?{
$ckey_length? =?4;
$clave? =?MD5($ clave);?
¿$keya? =?MD5(substr($key,0,?16));
$keyb? =?MD5(substr($clave,16,?16));?
$keyc? =?$ckey_length? ($operando?==?decodificación?substr($cadena,?0,?$ckey_length):?substr(md5(microtime()),?-$ckey_length))? :?'';
$clave criptográfica? =?$keya.md5($keya.$key c);
$key_length? =?strlen($ clave de cripta);
$cadena? =?$Operación? ==?¿Decodificación? base64_decode(substr($cadena,$ckey_length))? :?sprintf('010d ',?$expire?$expire??time()?:?0).substr(MD5($string.$keyb),?0,?16).$ string
$longitud_cadena? =?strlen($ cadena);
$Resultado? =?'';
$caja? =?Rango(0,?255);
$rndkey? =?array();
Para ($i?=?0;?$i?lt=?255;?$i)? {
$rndkey[$i]? =?order($ clave de cripta[$ I??$ clave _ longitud]);
}
for($j?=?$i?=?0;?$ i?lt?256;?$i)? {
$j? =?($j? ?$caja[$i]? ?$rndkey[$i])? ?256;
$tmp? =?$ caja[$I];
$caja[$i]? =?$ caja[$j];
$caja[$j]? =?$ tmp
}
For ($a?=?$j?=?$i?=?0;?$i? lt?$ cadena _ longitud?$ i)? {
$a? =?($a? ?1)??256;
$j? =?($j? ?$caja[$a])? ?256;
$tmp? =?$ caja[$a];
$caja[$a]? =?$ caja[$j];
$caja[$j]? =?$tmp?
¿$Resultado? .
=?chr(ord($cadena[$i])??($caja[($caja[$a]? ?$caja[$j])??256]));
}
¿Si ($operación?==?decodificar')? {
if((substr(,resultado,0,?10)?==?0?||?substr($resultado,?0,?10)?-?time()?gt? 0)?amp amp?substr($resultado,?10,?16)?==?substr(MD5(substr($resultado,26).$keyb),?0,?16))?{
¿Regresar? substr($resultado,?26);
}? {
¿Volver? '';
}
}¿Algo más? {
¿Volver? $keyc.str_replace('= ',?'',?base64_encode($ result));
}
}
gt Comúnmente utilizado en nuestra empresa ¿Función de cifrado y descifrado?
¿Quieres adoptar gracias?