La seguridad MD5 está bien?

Soy nuevo en la encoding así que tal vez me he perdido el punto de qué se trata md5. Pero por lo que he experimentado el cifrado MD5 es “estático” para cada palabra. Por estático quiero decir que siempre encontrarás el mismo resultado, por ejemplo md5 (“hola”). Y esto me hace pensar que es altamente reversible usando una biblioteca.

¿Qué pasa si a md5 (“hello”) se le asignó un número (ejemplo 5) y la cadena, por ejemplo?

xbuIdSjsdsjsd44s64sd fue su cifrado. y era igual a 5, pero ¿qué pasaría si sfoiefef465f4ze4f6fe también fuera su encriptación? y también era igual a 5

Porque ambos para un cálculo matemático terminan con el mismo resultado. Eso sería cifrado dynamic?

Creo, pero te digo que soy un novato en todo esto, así que esas son solo preguntas que me molestan, creo que las personas que tienen acceso a la contraseña de la base de datos de md5, pueden revertirlas fácilmente probando palabras y almacenándolas como una biblioteca.

¿Qué piensan chicos? y hay una alternativa a md5?

gracias por cualquier ayuda o enlightnment

Estas son realmente preocupaciones legítimas. Es posible que encuentre interesantes los siguientes artículos:

  • Mesa arcoiris
  • sal

Pero MD5 se considera “roto” por los profesionales de la seguridad. Depende de cuáles sean exactamente sus requisitos: MD5 podría ser adecuado, pero los hashes más seguros como la familia SHA-2 probablemente serían una opción más sabia, o incluso técnicas de fortalecimiento de claves como PBKDF2 (como sugiere CodeInChaos ).

Tenga en cuenta que su elección de algoritmo hash por sí sola no puede considerarse segura o insegura aisladamente. Es importante usar el algoritmo hash de una manera probada, probada y comprobada.

Para almacenar las contraseñas, no es aceptable una función hash rápida que incluya md5 y SHA1 / 2 (incluso cuando está salado). Debe usar un hash lento, normalmente en la forma de una función de derivación de tecla para disminuir la fuerza bruta. PBKDF2 y bcrypt son opciones populares. También debe usar una sal aleatoria por usuario.

Si MD5 es seguro de usar depende de para qué lo use y cómo.

Para la integridad del mensaje, MD5 ya no es adecuado porque existe un ataque para encontrar un mensaje alternativo con el mismo hash.

Para almacenar contraseñas en una base de datos, MD5 es aceptable , se supone que lo salpican adecuadamente. Para este uso, el ataque conocido carece de importancia.
Si está en modo paranoia, puede usar un esquema más complicado como bcrypt también, pero para la mayoría de las personas, almacenar una contraseña con sal es suficiente. Evita el ataque más fácil y más obvio, es fácil de implementar, difícil de hacer mal y tiene una sobrecarga baja.

Tenga en cuenta que dos contraseñas diferentes que tienen el mismo valor hash no son realmente un problema en condiciones normales. Esto sucede, ¿y qué?

Habiendo dicho eso, usar SHA en lugar de MD5 realmente no cuesta nada extra. Tiene más bits, ningún ataque conocido, y es compatible con cada mitad de la biblioteca decente.