Social

sábado, 23 de febrero de 2013

Java: Codificar archivos y cadenas a Base64

En una entrada anterior (esta) se mostró una herramienta que hacia posible convertir archivos y/o cadenas a su respectivo código Base64. Para realizar esta operación ya existen librerías que permiten hacer la conversión simplemente importándola. 

Tal es el caso de la librería commons-codec de Apache, la cual se puede descargar en el siguiente link o directamente de la pagina de Apache. El siguiente código muestra como realizar la codificación ya sea con archivos o cadenas.


Podemos observar que se importa la clase "org.apache.commons.codec.binary.Base64", la cual esta disponible al agregar la librería descargada. Para aprender como agregar la librería en eclipse pueden ver la siguiente entrada. El resto del código es relativamente sencillo. Convertimos el archivo o cadena a un array de bytes y se lo agregamos como parámetro al método encodeToString() de la clase Base64. Luego simplemente desplegamos el código en Base64.

5 comentarios :

  1. Se produce un fallo.
    javax.servlet.ServletException: PWC1243: Filter execution threw an exception
    root cause

    java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.encodeToString([B)Ljava/lang/String;

    ResponderEliminar
    Respuestas
    1. Puede que sea la versión que estas usando de esta librería. Si es la ultima la otra alternativa es usar Base64.encode(byte[]) y transformar este resultado a un String.

      Eliminar
  2. donde tienes la clase base64?

    ResponderEliminar
    Respuestas
    1. La clase esta en la librería que puedes descargar seguiendo los links al inicio de la aplicación. Solo la tienes que agregar a tu proyecto. Para agregar una nueva librería aquí se explica:

      http://www.youtube.com/watch?v=BtcEri2lgLw‎

      Eliminar
  3. Ahora ya es posible usar base64 en Java de forma nativa, claro esta, solo en Java 8.

    ResponderEliminar