DSC_0298.jpg ESC_0133.jpg DSC_0426.jpg

 i need more coffee

Atteint depuis mon plus jeune âge d'hippopotomonstrosesquippedaliophobie (cultivez vous ça ne fera pas de mal) j'ai décidé de faire un blog sur ma maladie (be feeeaar..).
Blague à part c'est un blog totalement axé génie logiciel que vous trouverez ici. Du PHP, du J2EE, et évidement toutes les technologies qui leur sont liées.

Have fun !

Encoder une chaine en Base64 sous Java

29 août 2012Posté par : Kevin Danezis dans Java EE

Encoder en base64 c'est facile, il y a plein de tuto. Mais encoder correctement selon les normes J2EE et les bonnes pratiques est une autre paire de manche.

La plupart des solutions sur internet proposent d'utiliser sun.misc.BASE64Encoder() comme moyen d'encoder une chaine. (exemple ici)

Le code proposé est:

BASE64Encoder enc = new sun.misc.BASE64Encoder();
String toEncode = "ma chaine";
return enc.encode(toEncode.getBytes());

Or, les librairies Sun pourraient être retirées du JDK dans les prochaines versions de Java. Il est donc important de passer à une autre solution. Cet import est d'ailleurs une clause de violation pour PMD, le célèbre contrôleur de qualité de code (lien, chercher "DontImportSun" dans le texte).

Une solide alternative réside dans l'utilisation de Apache Commons Codec (site)

Le code :String toEncode = "ma chaine";
return new String(Base64.encodeBase64(toEncode.getBytes()));

Le résultat sera strictement le même, la pérénité en plus.

sources : ici

comments powered by Disqus