Generación de contraseña Hash en PHP 5.5 y configuración de opción de costo

Sé que PHP 5.5 está en alfa, pero esta clase que estoy haciendo solo se está creando con anticipación para utilizar su función de hash usando function_exists ().

Revisé elpassword_hash documentación. El tercer argumento es para $ options, que actualmente admite dos opciones, 'sal' y 'costo'.

Enuncia lo siguiente:

costo, que denota el costo algorítmico que se debe utilizar. Se pueden encontrar ejemplos de estos valores en la página crypt ().

Cuando voy a la página crypt () la documentación que da es:

Blowfish hashing con una sal de la siguiente manera: "$ 2a $6$quot;, "$ 2x $6$quot; o "$ 2y $6$quot;, un parámetro de costo de dos dígitos, "$6$quot; y 22 dígitos del alfabeto "./0-9A-Za -z ". El uso de caracteres fuera de este rango en el salt hará que crypt () devuelva una cadena de longitud cero. El parámetro de costo de dos dígitos es el logaritmo base-2 del recuento de iteraciones para el algoritmo de hashing basado en Blowfish subyacente y debe estar en el rango 04-31; los valores fuera de este rango harán que crypt () falle. Las versiones de PHP anteriores a 5.3.7 solo admiten "$ 2a $6$quot; como el prefijo salt: PHP 5.3.7 introdujo los nuevos prefijos para corregir una debilidad de seguridad en la implementación de Blowfish. Consulte »este documento para obtener todos los detalles de la solución de seguridad, pero para resumir, los desarrolladores que solo buscan PHP 5.3.7 y versiones posteriores deben usar" $ 2y $ "en lugar de" $ 2a $ ".

Parece que no puedo envolver mi cabeza alrededor de esto. Dice que PHP 5.3.7 y versiones posteriores deben usar $ 2y $, pero ¿qué valor de costo utilizo para obtener esa opción y es la mejor opción para elegir? El ejemplo que proporcionan usa un valor de 7, pero de acuerdo con lo anterior, puede llegar hasta 31, ¿qué diferencia hace usar decir 4 en lugar de decir 31?

Respuestas a la pregunta(2)

Su respuesta a la pregunta