¿Qué tan seguro es usar el hash MD5 con la función CONTRASEÑA () de MySQL?

No. Usar MD5 en la forma en que muestra no ayuda en absoluto a la seguridad. Y parece que no estás usando una sal, que es aún peor.

No debe usar la función PASSWORD() MySQL. Esa función quedó en desuso en MySQL 5.7.6 y se eliminará en una versión futura de MySQL. Incluso antes de MySQL 5.7, estaba documentado en el manual de MySQL que la función PASSWORD() era solo para contraseñas de MySQL, no para su propia aplicación o cualquier otro propósito. Incluso MySQL se está alejando de esa función.

SHA-256 es la función de cifrado criptográfico de fuerza mínima actual recomendada para usar con datos confidenciales como contraseñas o firmas digitales. SHA-256 ha sido compatible como una función integrada en MySQL desde la versión 5.5, lanzada en 2010.

Es incluso mejor usar un algoritmo de estiramiento de teclas. Un buen ejemplo es bcrypt.

Las recomendaciones de otras respuestas en este hilo para usar SHA1 están desactualizadas. No uses SHA1. Vea por qué Google está apurando la Web para matar SHA-1

Las recomendaciones para usar dígitos o caracteres de puntuación están mal orientadas. Es mejor usar una contraseña más larga basada en palabras pronunciables. La siguiente caricatura sobre Password Strength ilustra por qué.

Hay usos legítimos para funciones de hash más débiles como MD5 o SHA1. Son útiles para calcular una cadena de hash rápida para los datos internos de su aplicación, por lo que puede compararla con el hash de alguna otra copia de los datos para ver si los datos han cambiado. Es una ventaja que estos algoritmos de hash más simples sean rápidos.

Pero estas funciones no son buenas cuando necesita hashing criptográfico seguro.

La respuesta dependerá de las restricciones impuestas al usuario al crear la contraseña. Como han sugerido los demás, es una buena idea usar una contraseña de sal, pero no es obligatorio si usted, como propietario del sitio, impone pautas de contraseña sensatas.

En general, las siguientes pautas le ayudarán a generar una contraseña suficientemente segura, independientemente de si usa o no una sal:

yo. La contraseña debe tener al menos 12 caracteres;

ii) No hay palabras conocidas en la contraseña (use un diccionario para verificar esto);

iii) Hay al menos tres letras mayúsculas en la contraseña;

iv. Hay al menos tres letras minúsculas en la contraseña;

v. Hay al menos tres dígitos en la contraseña;

vi. Hay al menos tres caracteres especiales en la contraseña;

vii. (iii.), (iv.), (v.) y (vi.) deben alternarse, es decir, no debe haber ocurrencias consecutivas de ninguna categoría (iii.), (iv.), (v.), ( vi.).

Aquí hay un ejemplo de dicha contraseña: Q7h # cY / 3t% 1L

Ahora, el último requisito hará que la elección de una contraseña sea un poco exigente para sus usuarios, pero definitivamente hará que la contraseña sea lo suficientemente segura como para que ver un hash MD5 no sea bueno para el pirata informático.

Ve por el hash SHA1.
MD5 ya ha sido comprometido irremediablemente.

MD5
El codificador de contraseña MD5 ‘ya no es seguro’ | ZDNet