2011-05-23 15 views
8

ACTUALIZACIÓNPHP redirección sosteniendo la escritura

me encontré con el problema de que estaba sosteniendo mi guión. Aparentemente no tenía nada que ver con el descifrado, sino con mi redirección. Cuando eliminé este bloque de código, la secuencia de comandos comenzó a ejecutarse rápidamente. Todavía no estoy seguro de por qué esto estaba causando el problema?

// Make sure we have an Order ID 
if(! isset($_GET['id']) && ! isset($_POST['id'])) { 
    header("Location: https://www.website.com/orders/"); 
    exit; 
} 

pregunta original:

He estado usando la clase de cifrado encontrado aquí: Encryption class. Estoy almacenando los datos en una base de datos MySQL, con un tipo de datos binarios VARCHAR (anteriormente probé BLOB y TINYBLOB).

Tanto el cifrado como el descifrado funcionan, pero se tarda 1 minuto en descifrar. La encriptación es rápida.

Supongo que también debería decir que esto sucede a través de una conexión https (en caso de que sea relevante).

No lo recuerdo siempre tomando todo este tiempo para descifrar. ¿Tienes alguna idea de lo que podría estar causando esto? Cuando comento la parte de descifrado del código PHP, y solo repito la cadena encriptada, se realiza rápidamente.

código como se solicita a continuación en los comentarios

class Encryption 
{ 
    const CYPHER = 'blowfish'; 
    const MODE = 'cfb'; 
    const KEY = 'MyPersonalKey'; 

    public function encrypt($plaintext) 
    { 
     $td = mcrypt_module_open(self::CYPHER, '', self::MODE, ''); 
     $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND); 
     mcrypt_generic_init($td, self::KEY, $iv); 
     $crypttext = mcrypt_generic($td, $plaintext); 
     mcrypt_generic_deinit($td); 
     return $iv.$crypttext; 
    } 

    public function decrypt($crypttext) 
    { 
     $plaintext = ''; 
     $td  = mcrypt_module_open(self::CYPHER, '', self::MODE, ''); 
     $ivsize = mcrypt_enc_get_iv_size($td); 
     $iv  = substr($crypttext, 0, $ivsize); 
     $crypttext = substr($crypttext, $ivsize); 
     if ($iv) 
     { 
      mcrypt_generic_init($td, self::KEY, $iv); 
      $plaintext = mdecrypt_generic($td, $crypttext); 
     } 

     return $plaintext; 
    } 
} 

Aquí está el código de la página web, donde hice las variables de la fila de MySQL. Estoy usando el objeto $ wpdb de WordPress.

$order = $wpdb->get_row("SELECT * FROM orders WHERE id = ".$order_id." LIMIT 0,1"); 

$addons_price =  $order->addons_price; 
$hooked_package = (isset($_GET['hooked_package'])) ? $_GET['hooked_package'] : $order->hooked_package; 
$arrival_date_unix = $order->arrival_date_unix; 
$order_data =  unserialize($order->order_data); 
$preview_total =  $order_data['preview_price'] + $addons_price + $order_data['travel_insurance']; 
$normal_total =  $order_data['normal_price'] + $addons_price + $order_data['travel_insurance']; 
$package_price =  $order->package_price; 
$total_price =  $order->total_price; 
$billing_cc =  Encryption::decrypt($order->billing_cc); 

Además, aquí es el tipo de MySQL ...

`billing_cc` varbinary(255) DEFAULT NULL 
+1

¿Puede mostrarnos parte del código, particularmente algunas líneas antes y después del proceso de "descifrado"? –

+3

Intenta agregar y luego mover una instrucción "die ('stopped on line x')" en cada línea de su función de descifrado. Mueva hacia abajo la función hasta que aisle exactamente qué llamada de mcrypt es lenta. –

+0

No veo ningún problema en esa clase, ¿tienes una clave realmente larga? Esto podría ser un factor para el descifrado lento –

Respuesta

1

El código que indica como su problema es un simple redirección condicional. Por lo tanto, no debería tener nada que ver con el descifrado. La única razón por la que veo que el redireccionamiento es lento es porque el servidor web está bajo mucha carga, tiene una conexión lenta o tiene algún otro problema de rendimiento.

+0

Sí, disculpe la confusión. Entiendo lo que significa el código. Sin embargo, descubrí que la desencriptación NO era la causa del retraso, después de todo. Una vez que eliminé el bloque de código de redireccionamiento, el script se ejecutó rápidamente. No estoy seguro por qué. –

Cuestiones relacionadas