Foro de elhacker.net

Seguridad Informática => Criptografía => Mensaje iniciado por: VíctorRoiget en 16 Noviembre 2016, 16:23 pm



Título: contraseña web
Publicado por: VíctorRoiget en 16 Noviembre 2016, 16:23 pm
buenos dias, soy nuevo en el foro i me gustaria cifrar las contraseñas de my pagina web. lo basico que tengo hasta aora es ento

Código
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <link rel="shortcut icon" type="image/x-icon" href="/img/transmit_add.png" />
  6. <title>Documento sin título</title>
  7. </head>
  8. <body>
  9. <div style=" position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);">
  10. <form method="POST" action="prova1.php">
  11. Usuario: <input type="text" name="usuario" size="10"/><br>
  12. </br>
  13. Password: <input type="password" name="password" size="10"/><br>
  14. </br>
  15. <input type="submit" value="Enviar" name="privado">
  16. </form>
  17. </div>
  18.  
  19. </body>
  20. </html>

y


Código
  1. <?php
  2. // Comparamos a ver si son correctos
  3.  
  4.  
  5. if ($_POST['usuario']=="tuuser" && $_POST['password']=="tupass")
  6. {
  7. $valido="si";
  8. }
  9. elseif ($_POST['usuario']=="tuuser") {
  10. $valido="usuario";
  11. }
  12. elseif ($_POST['password']=="tupass") {
  13. $valido="pass";
  14. }
  15. else
  16. {
  17. $valido="no";
  18. }
  19. ?>
  20. <html>
  21. <head>
  22. <title>Pagina privada / error</title>
  23. </head>
  24. <body>
  25. <?php if ($valido=="si")
  26. {
  27. ?>
  28. ' A continuación todo el contenido de nuestra pagina privada
  29. <p>BIENVENIDO A LA PAGINA PRIVADA</p>
  30. <?php }
  31. else
  32. {
  33. ?>
  34. <p>USUARIO O CONTRASEÑA INCORRECTA</p>
  35. <?php
  36. }
  37. ?>
  38. </body>
  39. </html>


como veis ento es lo basico y lo que hace que la contraseña funcione.

no se mucho de programacion asi que toda aportacion sera bienvenida

MOD: La próxima vez especifica el lenguaje de programación del código en la etiqueta GeSHI.


Título: Re: contraseña web
Publicado por: engel lex en 16 Noviembre 2016, 16:35 pm
para esto hay metodos simples y complejos, unos más seguros que otros... en general uno seguro y simple es usar la funcion predefinida en php

password_hash (http://php.net/manual/es/function.password-hash.php) y para verificarla password_verify  (http://php.net/manual/es/function.password-verify.php)

se usan de la siguiente manera

Código
  1. $hash = password_hash($password, PASSWORD_DEFAULT);
  2. //lo obtenido en hash es lo que guardas a la DB
  3.  

para comprobar si la contraseña es correcta

Código
  1. $hash = //lo que tengas en la db para ese usuario
  2. if (password_verify($passowrd, $hash)) {
  3.    echo '¡La contraseña es válida!';
  4. } else {
  5.    echo 'La contraseña no es válida.';
  6. }

hay que tener en cuenta , que este método usa bcript  (que es pesado) y que usa contraseñas de un máximo de 72 caracteres de largo...




Título: Re: contraseña web
Publicado por: VíctorRoiget en 16 Noviembre 2016, 21:26 pm
muchas gracias.



ahora bien, esto es solo para que yo me aclare, supongo que es criptografia asimetrica, pero hasta que punto en segura ???


Título: Re: contraseña web
Publicado por: engel lex en 16 Noviembre 2016, 23:21 pm
no es criptografía asimetrica... es un hash... es tan segura como tarden en romperlo... al ser bcrypt con salt, bastante segura diría yo, mucho más que lo que muchos servicios usan (y aún no se por qué siguen residiendo su seguridad en md5 y sha1)

te recomiendo leer el articulo de wiki sobre los hash (https://es.wikipedia.org/wiki/Funci%C3%B3n_hash)