Contraseñas de sal de PHP

Ok, así es como hacemos las contraseñas.

nota Cambiamos lo que saltamos.

<?


$PASSWORD = $_GET["password"];


$ranNUM = rand(965824, 957873488423748423486483);
$PASSWORD =  hash('sha512', $PASSWORD.$ranNUM.'MONKEY MONEY sad happy 7ab27t8g2hjq8tt 2g y8t 82 t2g edb t7e2gqjcb  t8egsjc byut87qebcjn 87ctyeqcb t78ye jscyt8ique bcg781eghjs btgq78 cbqjg78pqdgj d t87dqgjh bxauy fpqdgs,q vayupf d', TRUE);



for ($i = 1; $i <= $_GET['num']; $i++) {
$PASSWORD =  md5($PASSWORD);
$PASSWORD =  hash('sha512', $PASSWORD.$ranNUM.'MONKEY MONEY sad happy 7ab27t8g2hjq8tt 2g y8t 82 t2g edb t7e2gqjcb  t8egsjc byut87qebcjn 87ctyeqcb t78ye jscyt8ique bcg781eghjs btgq78 cbqjg78pqdgj d t87dqgjh bxauy fpqdgs,q vayupf d', TRUE);
$PASSWORD =  hash('sha512', $PASSWORD.$ranNUM.'MONKEY MONEY sad happy 7ab27t8g2hjq8tt 2g y8t 82 t2g edb t7e2gqjcb  t8egsjc byut87qebcjn 87ctyeqcb t78ye jscyt8ique bcg781eghjs btgq78 cbqjg78pqdgj d t87dqgjh bxauy fpqdgs,q vayupf d', TRUE);
$PASSWORD =  hash('sha512', $PASSWORD.$ranNUM.'MONKEY MONEY sad happy 7ab27t8g2hjq8tt 2g y8t 82 t2g edb t7e2gqjcb  t8egsjc byut87qebcjn 87ctyeqcb t78ye jscyt8ique bcg781eghjs btgq78 cbqjg78pqdgj d t87dqgjh bxauy fpqdgs,q vayupf d', FALSE);
$PASSWORD =  hash('sha512', $PASSWORD.$ranNUM.'MONKEY MONEY sad happy 7ab27t8g2hjq8tt 2g y8t 82 t2g edb t7e2gqjcb  t8egsjc byut87qebcjn 87ctyeqcb t78ye jscyt8ique bcg781eghjs btgq78 cbqjg78pqdgj d t87dqgjh bxauy fpqdgs,q vayupf d', TRUE);
$PASSWORD =  hash('sha512', $PASSWORD.$ranNUM.'MONKEY MONEY sad happy 7ab27t8g2hjq8tt 2g y8t 82 t2g edb t7e2gqjcb  t8egsjc byut87qebcjn 87ctyeqcb t78ye jscyt8ique bcg781eghjs btgq78 cbqjg78pqdgj d t87dqgjh bxauy fpqdgs,q vayupf d', TRUE);
$PASSWORD =  hash('sha512', $PASSWORD.$ranNUM.'MONKEY MONEY sad happy 7ab27t8g2hjq8tt 2g y8t 82 t2g edb t7e2gqjcb  t8egsjc byut87qebcjn 87ctyeqcb t78ye jscyt8ique bcg781eghjs btgq78 cbqjg78pqdgj d t87dqgjh bxauy fpqdgs,q vayupf d', TRUE);
$PASSWORD =  md5($PASSWORD);
$PASSWORD =  hash('sha512', $PASSWORD.$ranNUM.'MONKEY MONEY sad happy 7ab27t8g2hjq8tt 2g y8t 82 t2g edb t7e2gqjcb  t8egsjc byut87qebcjn 87ctyeqcb t78ye jscyt8ique bcg781eghjs btgq78 cbqjg78pqdgj d t87dqgjh bxauy fpqdgs,q vayupf d', TRUE);
$PASSWORD =  hash('sha512', $PASSWORD.$ranNUM.'MONKEY MONEY sad happy 7ab27t8g2hjq8tt 2g y8t 82 t2g edb t7e2gqjcb  t8egsjc byut87qebcjn 87ctyeqcb t78ye jscyt8ique bcg781eghjs btgq78 cbqjg78pqdgj d t87dqgjh bxauy fpqdgs,q vayupf d', FALSE);
$PASSWORD =  hash('sha512', $PASSWORD.$ranNUM.'MONKEY MONEY sad happy 7ab27t8g2hjq8tt 2g y8t 82 t2g edb t7e2gqjcb  t8egsjc byut87qebcjn 87ctyeqcb t78ye jscyt8ique bcg781eghjs btgq78 cbqjg78pqdgj d t87dqgjh bxauy fpqdgs,q vayupf d', TRUE);
$PASSWORD =  md5($PASSWORD);
$PASSWORD =  hash('sha512', $PASSWORD.$ranNUM.'MONKEY MONEY sad happy 7ab27t8g2hjq8tt 2g y8t 82 t2g edb t7e2gqjcb  t8egsjc byut87qebcjn 87ctyeqcb t78ye jscyt8ique bcg781eghjs btgq78 cbqjg78pqdgj d t87dqgjh bxauy fpqdgs,q vayupf d', TRUE);
$PASSWORD =  hash('sha512', $PASSWORD.$ranNUM.'MONKEY MONEY sad happy 7ab27t8g2hjq8tt 2g y8t 82 t2g edb t7e2gqjcb  t8egsjc byut87qebcjn 87ctyeqcb t78ye jscyt8ique bcg781eghjs btgq78 cbqjg78pqdgj d t87dqgjh bxauy fpqdgs,q vayupf d', FALSE);
$PASSWORD =  hash('sha512', $PASSWORD.$ranNUM.'MONKEY MONEY sad happy 7ab27t8g2hjq8tt 2g y8t 82 t2g edb t7e2gqjcb  t8egsjc byut87qebcjn 87ctyeqcb t78ye jscyt8ique bcg781eghjs btgq78 cbqjg78pqdgj d t87dqgjh bxauy fpqdgs,q vayupf d', TRUE);
$PASSWORD =  hash('sha512', $PASSWORD.$ranNUM.'MONKEY MONEY sad happy 7ab27t8g2hjq8tt 2g y8t 82 t2g edb t7e2gqjcb  t8egsjc byut87qebcjn 87ctyeqcb t78ye jscyt8ique bcg781eghjs btgq78 cbqjg78pqdgj d t87dqgjh bxauy fpqdgs,q vayupf d', TRUE);

print $PASSWORD;
print "<br>";

}

//print $PASSWORD;
?>  

Lo que hacemos es enviar un número, digamos 7, junto con la contraseña, luego ejecutamos el cifrado 7 veces.

junto con el número aleatorio para ese usuario (que se guarda en otra base de datos) NO EN EL MISMO SERVIDOR

entonces tenemos cuál debería ser la contraseña.

¿Qué crees que es esto de matar?

por ejemplo, 123 corriendo dos veces obtendría

íaªyå`ˆsœA²„†N¸jø¦žÃïªd*hÂ?‘\e½s­&žÉ:Ñl6DïƒÀ`ß,¢‹HÎÌ(üBìð6

para que esto sea aún más seguro, podría tener párrafos aleatorios para cada uno.

Necesitaría tenerlo guardado en algún lugar, pero sería genial si pudiera simplemente escanear un google o bing o cualquier sitio, y obtener una oración aleatoria de ese sitio.

Por favor dime tus pensamientos.

preguntado el 04 de julio de 12 a las 02:07

Sí, creo que esto es exagerado. -

1 Respuestas

Es una exageración, y no estoy seguro de que sea teóricamente sólido.

Un buen método para hacer que su contraseña (salada) sea un problema para la fuerza bruta es PBKDF2 de RSA.

Aquí hay una implementación PHP de PBKDF2.

Usted también podría estar interesado en Soplarcripta (intención similar, pero utilizando los algoritmos blowfish) y Scrypt (un tipo desagradable al que se le puede decir cuánta memoria desea que el atacante desperdicie con la fuerza bruta de su contraseña)

Respondido el 07 de Septiembre de 12 a las 01:09

Sí, pero al tener un factor aleatorio de dos es más seguro. RSA v1, que RSA todavía usa en 1999, se usó, tiene una falla, por lo que no confiaría en un sistema que se puede romper fácilmente si tiene tiempo. RussellHarrower

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.