Foros del Web » Programación para mayores de 30 ;) » Java »

Decodificar en Base 64

Estas en el tema de Decodificar en Base 64 en el foro de Java en Foros del Web. Buenas, estoy haciendo una aplicación que lee un texto codificado en Base 64. Normalmente cuando se envía un correo se codifica en Base 64. Pues ...
  #1 (permalink)  
Antiguo 17/05/2012, 10:10
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 1 mes
Puntos: 14
Decodificar en Base 64

Buenas, estoy haciendo una aplicación que lee un texto codificado en Base 64. Normalmente cuando se envía un correo se codifica en Base 64.

Pues bien, en conseguido decodificar pero la imagen no se abre. He mirado la diferencias entre lo que decodifica mi programa hecho en Java con lo que decodifica una página web y básicamente es que los espacios en blanco yo los pongo como interrogaciones por lo que he visto, así que no funciona...

¿Alguien lo ha hecho o probado y le funciona?

Para codificar una imagen he usado : http://www.opinionatedgeek.com/dotne...e/Default.aspx

Para decodificar en Java he usado :
http://www.devtroce.com/2010/02/15/c...se64-con-java/

Un saludo.
__________________
Aprendiendo un poco de Java :D
  #2 (permalink)  
Antiguo 17/05/2012, 10:17
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Decodificar en Base 64

Para que se vea en un HTML

tienes que ponerlo así

http://blog.team-noir.net/2010/03/ho...ne-an-img-tag/

pero hay gestores de correo (Gmail) que no lo muestran.

Lo que no entiendo es lo que dices de los espacios en blanco, una cadena de base64 no los tiene.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 17/05/2012, 10:28
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 1 mes
Puntos: 14
Respuesta: Decodificar en Base 64

El programa lo que hace es leer en un Jtextarea una cadena en Base 64, la decodifica y lo guarda. Siempre van a ser pdf, por lo cual, se va a guardar en pdf. El problema es que cuando lo abro, no se ve nada, esta en blanco.

Si uso la web esta y lo comparo con el pdf que me ha generado mi programa solo se diferencian en unos cuantos espacios en blanco e ?

Voy a mirar la información que me has mandado, gracias.

PD: Se me ha olvidad decir que se abre en el propio pc, con doble click sobre el PDF como siempre.
__________________
Aprendiendo un poco de Java :D
  #4 (permalink)  
Antiguo 17/05/2012, 10:35
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 1 mes
Puntos: 14
Respuesta: Decodificar en Base 64

Aquí esta por ejemplo, una imagen con Formato PNG, codificada en Base64 en texto plano.

http://www.gigasize.com/get/16wx8zo5hhb

Si nos vamos por ejemplo aqui : http://www.opinionatedgeek.com/dotne...e/Default.aspx

Y copiamos / pegamos lo que contiene el texto nos generará un archivo en formato .bin, renombramos a .png y se verá la imagen con doble click...
__________________
Aprendiendo un poco de Java :D
  #5 (permalink)  
Antiguo 17/05/2012, 10:38
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 1 mes
Puntos: 14
Respuesta: Decodificar en Base 64

Cita:
Iniciado por caruizj Ver Mensaje
Aquí esta por ejemplo, una imagen con Formato PNG, codificada en Base64 en texto plano.

http://www.gigasize.com/get/16wx8zo5hhb

Si nos vamos por ejemplo aqui : http://www.opinionatedgeek.com/dotne...e/Default.aspx

Y copiamos / pegamos lo que contiene el texto nos generará un archivo en formato .bin, renombramos a .png y se verá la imagen con doble click...
He probado con una cadena "Hola qué tal?" - -> SG9sYSBxdWUgdGFsIGVzdMOhcz8=

La he codificado con la página web.

La he pegado en mi programa.

Lo he decodificado con mi programa y grabado... Y se lee correctamente.

No entiendo porqué las imágenes no...
__________________
Aprendiendo un poco de Java :D
  #6 (permalink)  
Antiguo 17/05/2012, 11:38
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 1 mes
Puntos: 14
Respuesta: Decodificar en Base 64

Una preguntilla tonta, que puede ser que sea lo que me esté pasando.

Yo decodifico con:

byte[] decoded = Base64.decodeBase64(Jtextarea.getText().getBytes() );

Y luego lo escribo en el archivo como:

bf.write(new String (decoded));

Puede ser que al hacerlo como String esté perdiendo carácteres?

Como lo podría hacer escribiendo en bytes?


Edito: Ya lo he conseguido, siento el SPAM XD.

Si alguien quiere el código que me lo diga.

La aplicación lo que hace es lo siguiente: con una imagen, documento, pdf o cualquier archivo codificado en base 64 (como por ejemplo cuando enviamos un correo), se coge ese chorizo en Base 64 y el programa lo guarda sabiendo si es pdf, una imagen o que es. Al guardarse se queda bien y se puede abrir tranquilamente con un doble click como siempre.

Un saludo y de nuevo siento el SPAM, pero me lo habían pedido para ya!

Una tontería pero era lo que me pidieron jaja.
__________________
Aprendiendo un poco de Java :D

Última edición por caruizj; 17/05/2012 a las 11:53

Etiquetas: decodificar, programa
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 13:29.