Actualmente la seguridad de muchas webs se ve afectada por intrusiones no autorizadas debido a que algien de maneras no muy buenas consige el password de algien que no le cae muy bien o simplemente para poder suplanterle la identidad. En estos casos lo que se hace para saber la password y podern entar en su sistema es probar por fuerza bruta hasta que dan con el pass bueno.Otro metodo es utilizar la inmensidad de buscadores que se basan en password guardados en una bd con su correspondiente hash para decirte cual es el pass.
Lo que se me ocurrio para que este metodo ya no sea viable sera este:
Al registrarse el usuario y poner su clave NO codificarla directamente.
sino añadirle mas informacion. veamos un ejemplo
Código PHP:
$password_encriptado = md5($password_del_usuario);
//eso NO
$password_encriptado = md5(md5($password_del_usuario));
//esta opcion muchos programas de fuerza bruta ya la utilizan por eso mi solucion fue esta
$pass1=md5($pasword_del_usuario);
$salto = md5("%&@¬antifuerza!bruta||por¬VGPASTOR¿?");
$password_encriptado = md5($salto.$pass1);
Código PHP:
$salt1 = "texto prueba salto1";
$salt2 = "texto prueba salto2";
$salt3 = "texto prueba salto3";
$salt4 = "texto prueba salto4";
$salt5 = "texto prueba salto5";
$salt6 = "texto prueba salto6";
$salt7 = "texto prueba salto7";
$salt8 = "texto prueba salto8";
$salt9 = "texto prueba salto9";
$salt10 = "texto prueba salto10";
$salt11 = "texto prueba salto11";
$salt12 = "texto prueba salto12";
$salt13 = "texto prueba salto13";
$salt14 = "texto prueba salto14";
$salt15 = "texto prueba salto15";
$salt16 = "texto prueba salto16";
$salt17 = "texto prueba salto17";
$salt18 = "texto prueba salto18";
$salt19 = "texto prueba salto19";
$salt20 = "texto prueba salto20";
$salt21 = "texto prueba salto21";
$salt22 = "texto prueba salto22";
$salt23 = "texto prueba salto23";
$salt24 = "texto prueba salto24";
$salt25 = "texto prueba salto25";
$salt26 = "texto prueba salto26";
$salt27 = "texto prueba salto27";
$salt28 = "texto prueba salto28";
$salt29 = "texto prueba salto29";
$salt30 = "texto prueba salto30";
$pass1 = md5($pas_usu)
$ns1 =rand(1,30);
$s1 = md5($salt.ns1);
$ns2 = rand(1,30);
$s2 = md5($salt.$ns2);
$ns3 = rand(1,30);
$s3 = md5($salt.$ns3);
$ns4 = rand(1,30);
$s4 = md5($salt.$ns4);
$passfinencrip = md5($s1.s2.$pas_usu.$s3.$s4);
$p_encrypt= $ns1.$ns2.$ns3.$ns4.$passfinencrip;
Código PHP:
$password_del_usuario_al hacer_login_con_md5= md5($pasword_del_usuario_al hacer_login);
//Lo primero es saber que saltos se le han aplicado asi que cojemos los cuatro primeros caracteres que corres ponden a los saltos aplicados, del password guardado en la bd
$numero_del_salto_1 = $password_del_usuario_en_la_bd{0};
$numero_del_salto_2 = $password_del_usuario_en_la_bd{1};
$numero_del_salto_3 = $password_del_usuario_en_la_bd{2};
$numero_del_salto_4 = $password_del_usuario_en_la_bd{3};
//Codificamos los saltos
$salto_1_codificado = md5($salt.$numero_del_salto_1);
$salto_2_codificado = md5($salt.$numero_del_salto_2);
$salto_3_codificado = md5($salt.$numero_del_salto_3);
$salto_4_codificado = md5($salt.$numero_del_salto_4);
//les añadimos en el mismo orden que al guardar en el password encriptado del usuario que ha escriot en el login
$password_sin_el_numero_de_los _saltos = md5($salto_1_codificado.$salto_2_codificado.$password_del_usuario_al hacer_login_con_md5.$salto_3_codificado.$salto_4_codificado);
$password_a_comprobar_en_la_bd = $numero_del_salto_1.$numero_del_salto_2.$numero_del_salto_3.$numero_del_salto_4.$password_sin_el_numero_de_los _saltos;
Un saludo y espero sus comentarios.
PD: No lo he probado asi que alomejor tiene algun error por algun lado, lo unico que quiero exponer aqui es el sistema si alguno lo quiere hacer funcionar y no sabe que falla que me avise y se lo dejo listo.