Tengo un problema con mi clase de cifrado. A veces es muy rápido. A veces, sin embargo, es lento. el código Im usando es el siguienteclase de cifrado y mcrypt_create_iv es lento en los momentos
class Cipher {
private $securekey, $iv;
function __construct() {
$this->securekey = hash('sha256','51(^8k"12cJ[6&cvo3H/[email protected]',TRUE);
$this->iv = mcrypt_create_iv(32);
}
function encrypt($input) {
return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $this->securekey, $input, MCRYPT_MODE_ECB));
}
function decrypt($input) {
return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $this->securekey, base64_decode($input), MCRYPT_MODE_ECB));
}
function storeIV() {
return $this->iv;
}
}
¿Hay alguna sugerencia sobre por qué esto puede ser lento a veces y cómo podría solucionar este problema?
¿Cómo es la carga del servidor cuando se ejecuta rápidamente? Cuando se ejecuta lento? ¿Qué tipo de veces has grabado? – Crontab
Las cargas del servidor han sido idénticas entre rápido/lento cuando es rápido, se carga en aproximadamente .5 segundos cuando es lento, puedo esperar durante aproximadamente 2 minutos – bretterer
Solo una nota de seguridad: creo que está utilizando su clase de cifrado para encriptar texto claro múltiple. Normalmente, un IV no debe reutilizarse, por lo que es mejor generar el IV en el método de cifrado en lugar del constructor. Consulte http://stackoverflow.com/questions/11821195/use-of-initialization-vector-in-openssl-encrypt para ver cómo almacenarlo y restaurarlo. Además, tenga en cuenta que mcrypt_create_iv puede ser muy lento si el sistema no tiene suficiente entropía. Personalmente utilizo openssl_random_pseudo_bytes. Además, creo que falta el argumento iv en tus llamadas de función mcrypt_encrypt/decrypt. –