87 votes

Quelle bibliothèque Java permet le codage/décodage base64 ?

Je me demande quelle bibliothèque utiliser pour l'encodage/décodage base64 ? J'ai besoin que cette fonctionnalité soit suffisamment stable pour une utilisation en production.

294voto

Adam Points 5429

Java 9

Utilisez la solution Java 8. Note DatatypeConverter peut toujours être utilisé, mais il se trouve maintenant dans la section java.xml.bind qui devra être inclus.

module org.example.foo {
    requires java.xml.bind;
}

Java 8

Java 8 fournit désormais java.util.Base64 pour l'encodage et le décodage de base64.

Encodage

byte[] message = "hello world".getBytes(StandardCharsets.UTF_8);
String encoded = Base64.getEncoder().encodeToString(message);
System.out.println(encoded);
// => aGVsbG8gd29ybGQ=

Décodage

byte[] decoded = Base64.getDecoder().decode("aGVsbG8gd29ybGQ=");
System.out.println(new String(decoded, StandardCharsets.UTF_8));
// => hello world

Java 6 et 7

Depuis Java 6, la classe moins connue javax.xml.bind.DatatypeConverter peut être utilisé. Cela fait partie du JRE, aucune bibliothèque supplémentaire n'est nécessaire.

Encodage

byte[] message = "hello world".getBytes("UTF-8");
String encoded = DatatypeConverter.printBase64Binary(message);
System.out.println(encoded);
// => aGVsbG8gd29ybGQ=  

Décodage

byte[] decoded = DatatypeConverter.parseBase64Binary("aGVsbG8gd29ybGQ=");
System.out.println(new String(decoded, "UTF-8"));
// => hello world

16voto

Kevin Bowersox Points 48223

A l'intérieur Apache Commons Le fichier commons-codec-1.7.jar contient un fichier Base64 qui peut être utilisée pour encoder.

Via Maven :

<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>20041127.091804</version>
</dependency>

Téléchargement direct

13voto

Pawan Points 173

Si vous êtes un développeur Android, vous pouvez utiliser android.util.Base64 à cette fin.

5voto

JB Nizet Points 250258

Goyave contient également Base64 (parmi d'autres encodages et des choses incroyablement utiles)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X