Estoy trabajando en un sitio que debe ser compatible con versiones anteriores de PHP, que sufren de un bit alto problema en la implementación de Blowfish crypt()
. Esencialmente, los caracteres que no son ASCII no se procesan correctamente, y es posible que un atacante reduzca el espacio de fuerza bruta. Hay una solución en 5.3.7, pero tendré que admitir versiones anteriores.
Para solucionar el problema, estoy pensando en Base64 que codifica la contraseña antes de ejecutarla a través de crypt()
. La idea es que base64_encode()
es seguro binario, y la salida nunca contendrá ningún carácter cuyo bit más significativo esté establecido.
¿Es esta una suposición segura, o debería buscar un método alternativo?