elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 13:10  


Tema destacado: Únete al Grupo Steam elhacker.NET

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  Como funciona la encriptacion al ingresar datos a una DB?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como funciona la encriptacion al ingresar datos a una DB?  (Leído 897 veces)
tomeu00


Desconectado Desconectado

Mensajes: 1.067



Ver Perfil WWW
Como funciona la encriptacion al ingresar datos a una DB?
« en: 26 Septiembre 2011, 16:35 »

Estoy algo dudoso, ya que estoy intentando montar un pequeño registro en base de datos mediante formulario, pero mi duda es...

De que forma se codifican y descodifican los datos, por ejemplo el campo contraseña?


Es algo que sigo sin tener muy claro.


Gracias por adelantado.


En línea

madpitbull_99
Moderador Global
***
Desconectado Desconectado

Mensajes: 1.898



Ver Perfil WWW
Re: Como funciona la encriptacion al ingresar datos a una DB?
« Respuesta #1 en: 26 Septiembre 2011, 16:42 »

Para las claves se utiliza cifrado de "un solo camino", como es MD5 o SHA1.

Las claves antes de guardarlas en la base de datos se cifran a uno de los cifrados mencionados anteriormente (se guardan cifrados - hash).

A la hora de autenticarse, el usuario/cliente introduce su clave, se cifra y se compara con la que esta almacenada en la base de datos,
si coinciden, es que la clave es correcta.




En línea



«Si quieres la paz prepárate para la guerra» Flavius Vegetius

[Taller]Instalación/Configuración y Teoría de Servicios en Red
WHK
吴阿卡
Ex-Staff
*
Desconectado Desconectado

Mensajes: 4.113


The Hacktivism is not a crime


Ver Perfil WWW
Re: Como funciona la encriptacion al ingresar datos a una DB?
« Respuesta #2 en: 26 Septiembre 2011, 16:44 »

Hola, guardas tu password que es 123456 en la base de datos codificado como tu quieras, digamos que md5()

php -> guarda md5(123456) -> mysql(e10adc3949ba59abbe56e057f20f883e)

Entonces como en el mysql tenemos de contraseña e10adc3949ba59abbe56e057f20f883e lo unico que tienes que hacer es pedir la conraseña original al usuario y volverla a codificar y comparar el resultado.

Código
if(md5('123456') != 'e10adc3949ba59abbe56e057f20f883e'){
echo 'incorrecto';
}

Lo que se compara, guarda, etc es el hash no el passoriginal, un sistema nunca debe trabajar con contraseñas sino con hashes y el hash es el resultado de una codificación cualquiera, pero siempre debe codificarse de la misma forma.

Por ejemplo digamos que tengo una caja con contraseñas en mi casa entonces tu vienes y me dices que me darás tu contraseña para guardarla y me entregas el md5 de tu contraseña, ahora digamos que vuelves en 30 años mas y yo no te reconozco asi que te solicito la contraseña y tu me vuelves a dar el md5 de tu contraseña, entonces la comparo con la que está guardada y ya.

Por lo tanto cuando alguien le entrega una contraseña a un sistema web este siempre debe codificarla, y luego de eso trabajarla como si fuera el pass real y ya, tanto al guardarla como al solicitarla.

Puede ser un sha1, un rc4, un md5 o una mezcla rc4(md5($pass).sha1($pass), $pass) y así evitas las colisiones y crackeos.

--------- mad te me adelantaste xD
En línea

Mi foro Ultra Off-Topics: http://whk.drawcoders.com/foro/

Gracias a todos! Good bye!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines