Intento cifrar la contraseña con MD5 pero hay decodificadores para MD5. Así que me preocupa el cifrado de la contraseña para el sitio web grande.
¿Existe alguna sugerencia lógica o función de paso para generar una contraseña segura?
No puedo entender lo que estás preguntando, pero me lo han preguntado muchas veces aquí. Si desea saber cómo debe almacenar sus contraseñas; un hash criptográfico reforzado por clave fuerte y moderno como bcrypt es ideal; en el peor de los casos, use algo como sha256 / sha512 con un salt aleatorio (diferente para cada cuenta) almacenado con la contraseña. Esto ha sido cubierto en muchos hilos aquí.
En cuanto a cómo pensar en una contraseña segura, las frases de contraseña aleatorias son excelentes, y el software de dados es una forma fácil de crear una. También las contraseñas de más de 10 caracteres con una combinación de mayúsculas / minúsculas / números / símbolos son lo suficientemente fuertes. Si usa muchas contraseñas únicas (siempre es una buena idea), es útil usar herramientas como keepassx para mantener una lista cifrada de sus contraseñas asociadas a cada sitio.
Recuerde nunca reutilizar las contraseñas en múltiples sitios. Por ejemplo, si usa la misma contraseña en su banco como una aplicación web aleatoria, no tiene ninguna garantía de que la aplicación web aleatoria no almacene su contraseña en texto plano (o casi equivalente) y algún administrador / pirata informático intentará usarla algún día. Contraseña con otra información (como su nombre de usuario) en lugares como su banco.
Md5 es un hash, no un algoritmo de cifrado. Normalmente, su uso está en desuso si otras alternativas como SHA 128 / 256. Las contraseñas de tipo hash también suelen incluirse. Intente buscar un troyhunt que tenga una excelente serie de artículos sobre este tema.
Genere una contraseña aleatoria criptográficamente segura, córtela y guárdela junto con un salt. Una función hash está diseñada para ser de una manera, es decir, no debería poder descubrir la cadena simple original de un hash. Una sal no necesita ser única o secreta y se usa para prevenir ciertos tipos de ataques (como los ataques de diccionario).
secret = H ( password || salt )
Donde H es una función hash como, sha512, BCrypt; contraseña es el secreto de texto simple no almacenado por el sistema pero conocido por el usuario; y || es concatenación.
Luego, guardas el secreto y la sal a la vez.
Lea otras preguntas en las etiquetas passwords password-management encryption