Foros del Web » Programando para Internet » PHP »

Duda con cifrado sha1 y carácteres prohibidos en php

Estas en el tema de Duda con cifrado sha1 y carácteres prohibidos en php en el foro de PHP en Foros del Web. Buenas tardes: Explico, hasta ahora estoy validando los campos de las contraseñas, y luego los cifro... Entonces me he fijado que estoy haciendo mal en ...
  #1 (permalink)  
Antiguo 17/03/2010, 18:52
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 14 años, 11 meses
Puntos: 16
Duda con cifrado sha1 y carácteres prohibidos en php

Buenas tardes:

Explico, hasta ahora estoy validando los campos de las contraseñas, y luego los cifro...

Entonces me he fijado que estoy haciendo mal en caso de algo, primero deberé cifrarlo, y luego validarlo.

No obstante, quería saber si el cifrado sha1 puede obtener algun <>#; despues de cifrar

Valla, si yo por ejemplo le meto un "#" o cualquier otro digito extraño, lo convertiria en una cadena valida para php y msql o podría fastidiar el sistema.

Un saludo

Es para ahorrarme el validarlas, para poder permitir cualquier carácter
  #2 (permalink)  
Antiguo 17/03/2010, 23:55
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Duda con cifrado sha1 y carácteres prohibidos en php

Solo por mera precaucion (aunque no puedas ahorrarte una linea extra) es conveniente que escapes cualquier cadena antes de colocarla en una consulta, tan facil como $cadena = mysql_real_escape_string($cadena);, esto te evitara algunos dolores de cabeza.

Todavia recuerdo aquellos tiempos en que a PHP se le consideraba satanicamente inseguro por crear metodos para "ahorrar validaciones", como la directiva register_globals, desde entonces PHPNuke quedo tambien con esa fama de ser inseguro, no se si ya se recupero.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 22/03/2010, 15:54
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 14 años, 11 meses
Puntos: 16
Respuesta: Duda con cifrado sha1 y carácteres prohibidos en php

Buenas Triby.

Quería saber si usando esa cadena que me mandaste tengo que olvidar la validación de los formularios.

Valla, yo lo voy haciendo así

if(!preg_match("/^[a-zA-ZáéíúóÁÉÍÓÚ[:space:]]+$/i", $nombre))
{ $error=0; echo "Nombre $nombre tiene carácteres no permitidos o está vacio"; }

¿con eso es suficiente?
  #4 (permalink)  
Antiguo 22/03/2010, 16:13
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Duda con cifrado sha1 y carácteres prohibidos en php

No, no es suficiente, porque lo unico que hace mysql_real_escape_string() es "limpiar" los textos para evitar inyeccion SQL, permitiendote guardar cualquier caracter y la seguridad se limita a la base de datos, todavia quedan las inyecciones XSS y algunos otros detalles, pero, para no extendernos mucho con temas que ya se estan tratando, puedes ver: http://www.forosdelweb.com/f18/como-...ql-xss-790422/
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 22/03/2010, 18:33
 
Fecha de Ingreso: septiembre-2005
Mensajes: 34
Antigüedad: 19 años, 1 mes
Puntos: 1
Respuesta: Duda con cifrado sha1 y carácteres prohibidos en php

Para el cifrado te conviene usar MD5 y no SHA1, ya que también genera un HASH seguro, pero es más rápido.
Si se va a realizar una codificación por hora, esto no es un problema, pero si para grandes volumenes de codificación
en un servidor de producción, ya que SHA1 realiza 80 pasos mientras que MD5 solo 64 para la generación del HASH.
Para la mayoría de los proyectos, no es necesario un HASH de 160 bits, sino que con 128 basta y sobra.

Respecto a tu pregunta, ninguno de los dos devuelve esos caracteres, ya que los HASH son hexadecimales.

Saludos

Etiquetas: cifrado
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:22.