php - usar - password_verify
¿Cuál es una alternativa a password_hash() para(PHP 5<5.5.0)? (2)
Para las versiones de PHP <5.3.7, recomendaría:
http://www.openwall.com/phpass/
Para las versiones de PHP> = 5.3.7, use:
https://github.com/ircmaxell/password_compat
Generar sus propias sales requiere de muchos conocimientos, porque una buena y adecuada sal requiere mucha entropía. Generar esta sal en PHP es problemático, por lo que generalmente se depende de otros recursos para proporcionar esta cadena, como /dev/urandom
o openssl_random_pseudo_bytes
. Créame, esto no es algo que quiera probarse sin una investigación y consideración seria.
Se recomienda utilizar la nueva password_*
API, pero puede ser problemático si necesita admitir versiones anteriores de PHP, que es donde entra PHPass. Tengo que odiar esos planes de hosting de $ 1 por mes con PHP 5.2
Según el manual: password_hash se puede usar esta función para (PHP 5 >= 5.5.0)
Después de buscar una forma alternativa, encontré esta sencilla función desde aquí: http://www.sitepoint.com/password-hashing-in-php/
function generateHash($password) {
if (defined("CRYPT_BLOWFISH") && CRYPT_BLOWFISH) {
$salt = ''$2y$11$'' . substr(md5(uniqid(rand(), true)), 0, 22);
return crypt($password, $salt);
}
}
Puedo administrar mi código usando function_exists
antes de usar, pero mi pregunta es sobre el código alternativo anterior si es seguro o no, o ¿hay alguna alternativa en las versiones anteriores de PHP?
Para versiones de PHP> 5.3.7 pero anteriores a 5.5.0, puede encontrar una implementación de password_hash en https://github.com/ircmaxell/password_compat escrita por la misma persona que desarrolló la versión ahora implementada en PHP 5.5.0 + y deliberadamente destinado a proporcionar compatibilidad con versiones anteriores