elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  [Resuelto] [Pregunta]: ¿cifrar contraseñas con "SHA-512" es una forma segura?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto] [Pregunta]: ¿cifrar contraseñas con "SHA-512" es una forma segura?  (Leído 5,573 veces)
Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
[Resuelto] [Pregunta]: ¿cifrar contraseñas con "SHA-512" es una forma segura?
« en: 4 Septiembre 2019, 06:20 am »

Buenas noches!
sencillamente eso, ¿cifrar contraseñas con "sha-512" es una forma segura de guardar las claves de los usuarios? Caso contrario ¿Cual me podrían recomendar ya que no tengo mucha idea sobre el cifrado de datos?

¡Muchas gracias!


« Última modificación: 9 Septiembre 2019, 20:49 pm por #!drvy » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [Pregunta]: ¿cifrar contraseñas con "SHA-512" es una forma segura?
« Respuesta #1 en: 4 Septiembre 2019, 07:22 am »

primero que nada, sha no es un cifrado, es un hash

segundo sha 256 es mas que suficiente y te ahorras la mitad de ese espacio en base de datos

por ultimo, lo recomendable es usar hash+salt

especialmente php tiene una función segura para guardar y comprobar la contraseña en hash blowfish

https://www.php.net/manual/es/function.password-hash.php
y
https://www.php.net/manual/es/function.password-verify.php


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: [Pregunta]: ¿cifrar contraseñas con "SHA-512" es una forma segura?
« Respuesta #2 en: 4 Septiembre 2019, 18:06 pm »

No uses SHA-512. Usa una función como bcrypt, scrypt, Argon2, PBKDF2, etc.

El problema con algoritmos como SHA-512 y similares es que un atacante puede precalcular millones de contraseñas rápidamente. Por lo menos un salt aleatorio por cada contraseña es MUY importante... Para que no te saquen TODAS tus contraseñas de una sola rainbow table.

Edit: Exagero un poco con "TODAS" porque no todo mundo elige contraseña débiles, pero te sorprendería saber cuantas si lo hacen.
« Última modificación: 4 Septiembre 2019, 18:11 pm por MinusFour » En línea

Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
Re: [Pregunta]: ¿cifrar contraseñas con "SHA-512" es una forma segura?
« Respuesta #3 en: 4 Septiembre 2019, 19:25 pm »

¿Vendría siendo esta la función bcrypt?
https://www.php.net/manual/es/function.password-hash.php
uno de los parametros que se le pueden poner es:

Según como esta en el manual oficial de PHP:
PASSWORD_BCRYPT - Usar el algoritmo CRYPT_BLOWFISH para crear el hash. Producirá un hash estándar compatible con crypt() utilizando el identificador "$2y$". El resultado siempre será un string de 60 caracteres, o FALSE en caso de error.

Mientras tanto voy a seguir buscando.
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [Pregunta]: ¿cifrar contraseñas con "SHA-512" es una forma segura?
« Respuesta #4 en: 4 Septiembre 2019, 19:32 pm »

es ese, no es necesario pasar ese parametro, ese es por defecto...

y eso es uno de los modos mas seguros que puedes buscar
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
Re: [Pregunta]: ¿cifrar contraseñas con "SHA-512" es una forma segura?
« Respuesta #5 en: 4 Septiembre 2019, 19:40 pm »

es ese, no es necesario pasar ese parametro, ese es por defecto...

y eso es uno de los modos mas seguros que puedes buscar

¡Les agradezco mucho a los dos!

EDIT: Testee la función y veo que el hasheado es aleatorio a medida que actualizo la pagina o ejecuto el código independientemente si cambia o no el dato que estoy intentando hashear me va a dar siempre códigos diferentes aunque el dato sea el mismo.

¿Como podría aplicar esto a un login?
Porque cuando se usa sha-512 por ejemplo el hasheado es siempre el mismo para x dato/string que le pase, entonces lo que hago o hacía era hashear con el sha-512 la contraseña que el usuario ingresaba en el formulario login y despues una vez hashaeada la contraseña ingresada la comparaba con la contraseña que estaba en la base de datos (contraeña que esta hasheada)

Pero en este caso como podría hacer porque siempre me va a dar diferentes, aunque el dato sea el mismo.
« Última modificación: 4 Septiembre 2019, 19:52 pm por MiguelCanellas » En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: [Pregunta]: ¿cifrar contraseñas con "SHA-512" es una forma segura?
« Respuesta #6 en: 5 Septiembre 2019, 01:55 am »

¡Les agradezco mucho a los dos!

EDIT: Testee la función y veo que el hasheado es aleatorio a medida que actualizo la pagina o ejecuto el código independientemente si cambia o no el dato que estoy intentando hashear me va a dar siempre códigos diferentes aunque el dato sea el mismo.

¿Como podría aplicar esto a un login?
Porque cuando se usa sha-512 por ejemplo el hasheado es siempre el mismo para x dato/string que le pase, entonces lo que hago o hacía era hashear con el sha-512 la contraseña que el usuario ingresaba en el formulario login y despues una vez hashaeada la contraseña ingresada la comparaba con la contraseña que estaba en la base de datos (contraeña que esta hasheada)

Pero en este caso como podría hacer porque siempre me va a dar diferentes, aunque el dato sea el mismo.

Lo que está pasando es que password_hash está generando un salt aleatorio por cada vez que lo llamas. Lo que significa que tienes 2 salts diferentes y por ende 2 hashes diferentes para un determinado string. Si le entregas el mismo salt a la función entonces recibes el mismo resultado. No te tienes que preocupar por eso porque puedes usar la función password_verify que hace todo por tí, extrae el salt del hash, vuelve a recalcularlo y hasta compara los strings en tiempo constante.
En línea

Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
Re: [Pregunta]: ¿cifrar contraseñas con "SHA-512" es una forma segura?
« Respuesta #7 en: 5 Septiembre 2019, 02:52 am »

¿Me podrías dar algún código como referencia?
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: [Pregunta]: ¿cifrar contraseñas con "SHA-512" es una forma segura?
« Respuesta #8 en: 5 Septiembre 2019, 03:49 am »

No hay nada complicado con estas funciones.

Código
  1. $pass = 'micontraseña';
  2. $mihash = password_hash($pass); //si viene de la DB obviamente no usas password_hash porque ya es un hash.
  3. password_verify($pass, $mihash); //true
En línea

Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
Re: [Pregunta]: ¿cifrar contraseñas con "SHA-512" es una forma segura?
« Respuesta #9 en: 5 Septiembre 2019, 05:42 am »

Ya pude comprender mejor, gracias.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Las contraseñas más populares en Linkedin son "password", "123456" y "qwerty"
Noticias
wolfbcn 0 4,292 Último mensaje 11 Junio 2012, 12:59 pm
por wolfbcn
Recibir un string del teclado de forma "segura"
Programación C/C++
NathanD 2 2,452 Último mensaje 4 Diciembre 2012, 16:13 pm
por rir3760
Cifrar de forma segura una Pass en el Source « 1 2 »
.NET (C#, VB.NET, ASP)
z3nth10n 16 9,664 Último mensaje 1 Agosto 2013, 19:17 pm
por Novlucker
[Resuelto] [Pregunta]: Función "is_timestamp"
PHP
Leguim 7 3,181 Último mensaje 21 Agosto 2019, 02:39 am
por Leguim
[Pregunta]: Reemplazar comillas de una forma más "elegante"
Desarrollo Web
Leguim 0 5,814 Último mensaje 6 Septiembre 2021, 22:05 pm
por Leguim
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines