Estaba leyendo este tutorial para un simple PHP login system.¿Para qué es md5()?
Al final, se recomienda encrypt your password using md5().
Aunque sé que este es un tutorial para principiantes, y no debe poner estados de cuenta bancarios detrás de este sistema de inicio de sesión, esto me hizo pensar en el cifrado.
Así que siguió adelante y fue a (una de las preguntas más útiles de este sitio tiene para los novatos): What should a developer know before building a public web site?
Allí se dice (en la seguridad) debe:
CifrarHash y contraseñas de sal en lugar de almacenarlas en formato de texto sin formato .
No dice mucho más al respecto, no hay referencias.
Así que siguió adelante y probado a mí mismo:
$pass = "Trufa";
$enc = md5($pass);
echo $enc; #will echo 06cb51ce0a9893ec1d2dce07ba5ba710
Y esto es lo que me hizo pensar, que a pesar de que sé md5() podría no la manera más fuerte para cifrar, todo lo que siempre produce el mismo resultado puede ser ingeniería inversa.
Entonces, ¿cuál es el sentido de encriptar algo con md5() o cualquier otro método?
Si un pirata informático obtiene una contraseña cifrada con md5(), he would just use this page!.
por lo que ahora las preguntas reales:
- ¿Cómo funciona el cifrado de la contraseña?
Sé que no he descubierto una gran vulnerabilidad de la web aquí! :) Solo quiero entender la lógica detrás del cifrado de contraseñas.
Estoy seguro de que estoy entendiendo algo mal, y agradecería si pudieran ayudarme a establecer mi pensamiento y el de los demás (espero) directamente.
¿Cómo tendría que aplicar el cifrado de contraseña para que sea realmente útil?
- ¿Qué tal esta idea?
Como dije, es posible que me esté haciendo una idea equivocada, pero, ¿este método agregaría alguna seguridad en la seguridad a un entorno real?
$reenc = array(
"h38an",
"n28nu",
"fw08d"
);
$pass = "Trufa";
$enc = chunk_split(md5($pass),5,$reenc[mt_rand(0,count($reenc)-1)]);
echo $enc;
Como se puede ver, he añadido al azar cadenas arbitrarias ($reenc = array()
) a mi md5() contraseña "lo que es único". Esto, por supuesto, es solo un ejemplo tonto.
Puede que esté equivocado, pero a menos que "inicie el cifrado usted mismo" siempre será fácilmente reversible.
Lo anterior sería mi idea de "protección de contraseña" y la contraseña encriptada, si un hacker consigue que él no será capaz de descifrarlo a menos que acceda a la .php prima
Sé que esto puede no incluso tiene sentido, ¡pero no puedo entender por qué esta es una mala idea!
espero que lo hecho fue lo suficientemente claro, pero esta es una pregunta muy largo, así que, por favor, solicitar cualquier aclaración necesaria!
Gracias de antemano!
+1 Para no solo preguntar "¿Qué es md5() para?" – Gumbo
lo que "inventó" ya existe. se llama SALT. "salar" un hash resulta en una mayor seguridad, sí. pero md5() es un poco obsoleto. tiene demasiadas colisiones y está desactualizado.use sha1() en su lugar – mark
@Gumbo ¡Me ha sorprendido la buena voluntad y el esfuerzo que la gente le hace para responder cuando pone un poco de esfuerzo en sus preguntas! – Trufa