Estoy usando bcrypt/blowfish en php y cuando establezco el parámetro de costo en $ 10 (creo que 1024 rondas) el proceso de encriptación toma 0.1 segundos. Si lo configuro en $ 12, demora 0.3 segundos. Mi pregunta es: ¿Esto ocupa 0,3 segundos de tiempo de CPU, es decir, si tengo 100 usuarios ejecutando este proceso, todos tendrán que esperar 30 segundos (0,3 x 100)? (edit: puede ser más corto debido al procesamiento dual0core/multi-thread, pero incluso 10 segundos son inaceptables).Costo de Blowfish contra tiempo
También: ¿Cuál es un buen valor para dejar este parámetro de costo? algunas personas recomiendan $ 16, pero eso lleva más de 5 segundos en mi sitio (alojado por un gran servidor web).
por la forma en que estoy usando el siguiente código para comprobar el tiempo que se tarda:
<?php
// set a password to work with
$var1 = "doodoo1234";
//echo that password onto the screen
echo $var1 . "<br /><br />";
//Start the clock
$time_start = microtime(true);
//Run blowfish function to encrypt the password
$hashedpass = PassHash::blowfishhash($var1);
//stop the clock
$time_end = microtime(true);
//echo the password to the screen
echo $echohashedpass . "<br /><br />";
//Echo the length of the encrypted password to the screen
//(this taught me that blowfish always returns a 60 varchar string)
echo strlen($sajpass). "<br /><br />";
$time = $time_end - $time_start;
echo "that took $time seconds\n";
?>
Puedes probarlo con apache benchmark o ab para abreviar para ver cómo se maneja bajo carga. – Zombaya
¡Nooo! ¡No más benchmarking! ... No tengo tanto acceso al servidor Apache en mi servidor web y estoy seguro de que hay personas que han implementado la seguridad de blowfish y pueden responder a esto ... aunque averigüe cuántas rondas la mayoría de la gente está usando Puedo usar eso como punto de partida. –
Puede comparar desde su computadora local. Yo personalmente uso 8, es el valor predeterminado de [phpass] (http://www.openwall.com/phpass/). – Zombaya