Maison >Java >javaDidacticiel >Comment encoder et décoder correctement des chaînes à l'aide de Base64 en Java ?

Comment encoder et décoder correctement des chaînes à l'aide de Base64 en Java ?

DDD
DDDoriginal
2024-11-23 02:14:12817parcourir

How to Properly Encode and Decode Strings Using Base64 in Java?

Encodage et décodage de chaînes en Base64 à l'aide de Java

L'encodage et le décodage de chaînes à l'aide de Base64 sont une tâche courante dans de nombreux scénarios de programmation. Cependant, des détails d'implémentation spécifiques peuvent parfois entraîner des problèmes.

Le problème

L'extrait de code fourni semble rencontrer des problèmes d'encodage et de décodage d'une chaîne en Base64. Le problème spécifique n'est pas explicitement mentionné.

La solution

Pour réussir à encoder et décoder des chaînes à l'aide de Base64 en Java, les étapes suivantes doivent être soigneusement suivies :

Encodage :

  1. Choisissez un encodage de caractères approprié pour la chaîne. UTF-8 ou UTF-16 sont des choix courants.
  2. Encodez la chaîne dans un tableau d'octets en utilisant l'encodage de caractères choisi (par exemple, source.getBytes("UTF-8")).
  3. Utilisez la classe Base64 pour coder le tableau d'octets dans une chaîne Base64 (par exemple, Base64.encodeToString(byteArray, Base64.DEFAULT)).

Décodage :

  1. Recevez la chaîne codée en Base64.
  2. Utilisez la classe Base64 pour décoder la chaîne Base64 dans un tableau d'octets (par exemple, Base64.decode(encodedString, Base64.DEFAULT)).
  3. Décoder le tableau d'octets en une chaîne en utilisant le codage de caractères utilisé lors du codage (par exemple, new String(byteArray, "UTF-8")).

Exemple de code :

Un exemple de code plus complet et amélioré qui suit ce qui précède étapes :

import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class Base64Example {

    public static void main(String[] args) {
        String source = "password";
        byte[] byteArray = source.getBytes(StandardCharsets.UTF_8);

        String encodedString = Base64.getEncoder().encodeToString(byteArray);
        System.out.println("Encoded string: " + encodedString);

        byte[] decodedByteArray = Base64.getDecoder().decode(encodedString);
        String decodedString = new String(decodedByteArray, StandardCharsets.UTF_8);
        System.out.println("Decoded string: " + decodedString);
    }
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn