Foros del Web » Programando para Internet » PHP »

Problemas en codificación de cáracteres en PHP cifrando AES128

Estas en el tema de Problemas en codificación de cáracteres en PHP cifrando AES128 en el foro de PHP en Foros del Web. Muy buenas. Vuelvo a acudir a ustedes para hacer uso de su conocimiento y experiencia. Ante todo, dar gracias a todos los que me han ...
  #1 (permalink)  
Antiguo 16/08/2008, 20:13
 
Fecha de Ingreso: julio-2008
Mensajes: 28
Antigüedad: 15 años, 9 meses
Puntos: 0
Problemas en codificación de cáracteres en PHP cifrando AES128

Muy buenas. Vuelvo a acudir a ustedes para hacer uso de su conocimiento y experiencia. Ante todo, dar gracias a todos los que me han ayudado hasta el momento con mis problemas y gracias en general a esta agradable comunidad. Prometo subir mis trabajos para todos ustedes cuando estén listos ;)

Mi problema es el siguiente:

Quiero cifrar mis password bajo AES128, ya que MD5 da problemas y el primero parece dar buenos resultados. El objetivo es obtener mediante un formulario una clave. Despues, esta se cifra bajo AES128 y se carga mediante include de otro archivo PHP la variable con la otra pass bajo AES128.

¿Se pueden creer que núnca han llegado a ser iguales las 2 claves cifradas? XD El problema buscando en google: La codificación de cáracteres. El servidor usa ISO-8859-1 y nosotros normalmente UTF-8. Aún forzando el primero o segundo, siempre hay problemas. Siempre. Por ello pido vuestra ayuda.

El cifrado: AES128
á_>3n¸.Óšþ~ã/ -> charmilia

ó con el error sale:
á_>3n¸.Óšþ~ã/

Muchas gracias.
  #2 (permalink)  
Antiguo 16/08/2008, 23:09
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Respuesta: Problemas en codificación de cáracteres en PHP cifrando AES128

Pide que cambien la configuración a UTF, iso está fuera de uso.

O cambia de hosting.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #3 (permalink)  
Antiguo 17/08/2008, 04:17
 
Fecha de Ingreso: julio-2008
Mensajes: 28
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problemas en codificación de cáracteres en PHP cifrando AES128

Fuerzo una codificación con header('Content-Type: text/html; charset=ISO-8859-1'); pero no sirve de nada.
  #4 (permalink)  
Antiguo 17/08/2008, 07:58
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Respuesta: Problemas en codificación de cáracteres en PHP cifrando AES128

Con que fuerces no creo que vayas a lograr nada, todo tu sistema debe ser consistente en un solo tipo de codificación, donde uno sea distinto, verás todos los caracteres "rotos".

El servidor debe cambiar su codificación o tú volver todo atrás y usar iso (aunque no lo recomiendo, volverías años atrás y seguro tendrás a futuro problemas de codificación con otros sistemas).

Todo tiene que estar en UTF: tu editor, tus archivos, tu cabezal html, los datos de tu base de datos (base de datos y campos), y cada uno de los servicios que uses, como tu servidor web.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #5 (permalink)  
Antiguo 17/08/2008, 08:34
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: Problemas en codificación de cáracteres en PHP cifrando AES128

Enrique tiene razón, no obstante, para salir del paso podrías probar con funciones de control de flujo. Algo así:
Código PHP:
<?php
ob_start
('cod');//esto al principio de la página
function cod($b){
return 
utf8_encode($b);
}
//...resto de la página
?>
<?php
//y al final, esto otro:
ob_end_flush();
?>
Con esto, probando distintas combinaciones de codificación en el retorno de la función cod (utf8_encode, utf8_decode, etc), podrás salir del paso.
  #6 (permalink)  
Antiguo 18/08/2008, 13:44
 
Fecha de Ingreso: julio-2008
Mensajes: 28
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problemas en codificación de cáracteres en PHP cifrando AES128

Si imprimo la variable desde el archivo externo, me sale asi:
rr~ˆÜý�§hy µe

Pero si lo leo desde otro archivo con un include e imprimo la otra variable, usando tu técnica, Panino, me salen mal (no se si he implementado mal tu código en el segundo archivo o que).

á_>3n¸.Óšþ~ã/ rr~ˆÜý�§hy µe

á_>3n¸.Óšþ~ã/

Otra posibilidad que se me ocurre es cifrar la clave AES bajo Blowfish con una global (el cual, no he sabido todavía usar o implementar). ¿Que os parece?
  #7 (permalink)  
Antiguo 18/08/2008, 13:53
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Respuesta: Problemas en codificación de cáracteres en PHP cifrando AES128

¿Que nos parece? Que hacer las cosas bien dan menos trabajo y se obtienen mejores resultados.... que hacer parches.

Concéntrate en tú problema de raíz, no en los parches de los parches, esto no terminará más.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #8 (permalink)  
Antiguo 18/08/2008, 15:16
 
Fecha de Ingreso: julio-2008
Mensajes: 28
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problemas en codificación de cáracteres en PHP cifrando AES128

Bueno, tampoco no hay que tratarlo como un parche, ya que da mas estabilidad con la codificación ya que solo usa los caracteres que se usarian en ASCII y da una mayor seguridad (y bastante grande).

Aunque, siendo AES, creo que ya es bastante seguro. Si se soluciona con otro metodo perfecto. Si no, pues nos veremos obligados a usar mayor CPU pero obtendremos una seguridad mucho mayor.
  #9 (permalink)  
Antiguo 18/08/2008, 15:55
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Respuesta: Problemas en codificación de cáracteres en PHP cifrando AES128

Es un parche más grande que una casa, todo porque el servidor no tiene bien codificado el soporte de caracteres.

UTF-8 es lo que hay que usar, no otra cosa. Si tu sistema usa UTF-8 no vas a hacer todo esto por culpa del servidor.

¿Te parece razonable?
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #10 (permalink)  
Antiguo 18/08/2008, 18:14
 
Fecha de Ingreso: julio-2008
Mensajes: 28
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problemas en codificación de cáracteres en PHP cifrando AES128

La idea es hacer con esto un CMS. Por lo tanto, no podemos decirle al usuario ¡¡Ups!! Es que si no tiene UTF-8 en su servidor no podrá usarlo (cuando casi nadie lo tiene).

La idea es crear un CMS seguro pero fácil y usable por todo el mundo. Perdón, pero la solución no me vale. ¿Que hay que usar un "parche"? (llámalo parche, pero yo lo llamo solución+mayor seguridad) pues se usa. Bueno, pero si se me decís otra solución factible para cualquier server os daría las gracias, de veras ;)
  #11 (permalink)  
Antiguo 18/08/2008, 18:23
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Respuesta: Problemas en codificación de cáracteres en PHP cifrando AES128

Cita:
Iniciado por capitanquartz Ver Mensaje
La idea es hacer con esto un CMS. Por lo tanto, no podemos decirle al usuario ¡¡Ups!! Es que si no tiene UTF-8 en su servidor no podrá usarlo (cuando casi nadie lo tiene).
¿Qué experiencia tienes en desarrollo web?

UTF-8 es un estándar de codificación desde hace "años", no es algo que deba ser contemplado como "opcional". Todo tu sistema debe estar en ese formato, fuentes, base de datos, cabezal html, etc.

¿Que parte de todo el sistema te parece modificable por decisión del usuario?

Cita:
La idea es crear un CMS seguro pero fácil y usable por todo el mundo. Perdón, pero la solución no me vale. ¿Que hay que usar un "parche"? (llámalo parche, pero yo lo llamo solución+mayor seguridad) pues se usa. Bueno, pero si se me decís otra solución factible para cualquier server os daría las gracias, de veras ;)
Usar UTF-8

PD: estaría interesante que cuando te embarques en un proyecto "serio", te fundamentes "seriamente", ya que estás hablando con una ignorancia que me sorprende.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #12 (permalink)  
Antiguo 18/08/2008, 18:35
 
Fecha de Ingreso: julio-2008
Mensajes: 28
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problemas en codificación de cáracteres en PHP cifrando AES128

Debo reconocer que soy "bastante novato en esto", pero por lo que se, UTF-8 no es adoptado hoy en día por muchos servidores. Por eso, muchos sitios con acentos muestran caracteres extraños de los mismos. Esto, es porque dichas paginas son escritas con editores de texto, los cuales, usan codificación UTF-8, pero el server usa otro. ¿No me crees? ¡Pulsa control + u!! (si usas firefox)

[...] <base href="http://www.forosdelweb.com/" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta name="generator" content="vBulletin 3.7.2" /> [...]

El mismo estandar del que yo se hablaba se usa en esta Web. Lo que dices es muy bonito, pero en efectos prácticos, nadie usa UTF-8 en servidores.
  #13 (permalink)  
Antiguo 18/08/2008, 18:54
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Respuesta: Problemas en codificación de cáracteres en PHP cifrando AES128

Selecciona mejor los proveedores de hosting.

Tampoco es excusa que muchos sitios web sean desarrollados por personas sin experiencia, como es este caso.

No repitas más disparates sin fundamento (UTF debe estar en el mercado desde hace más de 6 años, por lo menos).
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #14 (permalink)  
Antiguo 18/08/2008, 19:04
 
Fecha de Ingreso: julio-2008
Mensajes: 28
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problemas en codificación de cáracteres en PHP cifrando AES128

El tema no es mi hosting, lo repito. El tema es los otros hostings. La solución claramente pasa por forzar algo, para que funcione en todos los servers.

Si tienes razón, y la mayoría usa UTF-8, ¿que se fastidien quienes no lo usan? Es como si hacemos webs para IE porque sabemos que el 80% lo usa. "Si los demas no lo usan, pues que se fastidien".

...

¿O hacemos un sistema para ambos? ¿Que le funcione a todos? ¿No lo ves mejor?
  #15 (permalink)  
Antiguo 20/08/2008, 14:25
 
Fecha de Ingreso: junio-2008
Ubicación: Bogotá D.C. / Colombia
Mensajes: 4
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problemas en codificación de cáracteres en PHP cifrando AES128

Saludos, estuve leyendo la intensa discusión que han mantenido pero debo decir que Enrique tiene toda la razón, UTF-8 es el estándar que ha entrado a sustituir a iso 8859-1 y no es capricho como desarrollar sitios web para IE explorer que ni estándares respeta porque el 80% de los usuarios lo usan.

Bueno pero como la idea es no continuar con la discusión vengo a proponer soluciones, primero quiero hacer referencia al artículo en dónde encontré una buena solución además que la lectura es muy recomendada, aquí se encuentra el artículo http://www.juque.cl/weblog/2006/01/25/ascii-unicode-utf8-y-la-iatarnaaianalizaaian-parte-i.html

Ahora la solución que encontré sería la siguiente:

Cita:
¿No tienes acceso al httpd.conf?

Bajaste el test del Ñandú y te diste cuenta que tu caso es el A—el peor de todos— además tienes alojado tu sitio web en un servidor compartido donde no tienes acceso al httpd.conf ¿qué haces?.

En la raíz de tu sitio web, crea un archivo bautizándolo como .htaccess (nótese el punto al inicio). Éste archivo es especial, su nombre técnico es "archivo de configuración distribuido", por decirlo de algún modo es un httpd.conf local, especialmente configurado para un directorio "x", a pedido, moldeado para. Siguiendo el caso D dentro del .htaccess ponemos:

AddDefaultCharset utf-8

Guarda y ¡voila!. Si no lo haz hecho aún, cambia la codificación y el charset de todas tus páginas webs y todo tu sitio web gozará ahora de una dulce atmósfera UTF-8.
  #16 (permalink)  
Antiguo 20/08/2008, 22:50
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Respuesta: Problemas en codificación de cáracteres en PHP cifrando AES128

Cita:
Iniciado por neftons Ver Mensaje
Saludos, estuve leyendo la intensa discusión que han mantenido pero debo decir que Enrique tiene toda la razón, UTF-8 es el estándar que ha entrado a sustituir a iso 8859-1 y no es capricho como desarrollar sitios web para IE explorer que ni estándares respeta porque el 80% de los usuarios lo usan.
Gracias, pensé que estaba hablando solo contra la pared

Estuve viendo el artículo -no lo terminé de leer- pero parece que es el resumen que tanto buscaba guardar en mi bookmark .

Ni bien lo termine, lo posteo.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
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 03:37.