Outil gratuit d'encodage et de décodage base64. Convertissez du texte en Base64 ou décodez des chaînes Base64 instantanément. Prend en charge l'encodage standard et sécurisé pour URL. Aucune connexion requise.
Convertir du texte vers et depuis l'encodage Base64
Base64 est un schéma d'encodage binaire-à-texte qui convertit des données binaires en une chaîne ASCII de 64 caractères. Lorsque vous devez envoyer des images par e-mail, intégrer des données dans des URL ou transmettre des informations binaires via des API JSON, Base64 résout le problème de corruption de données dans les canaux texte uniquement.
L'encodage fonctionne avec un jeu de caractères spécifique :
Notre encodeur décodeur base64 convertit instantanément du texte en Base64 ou décode des chaînes Base64 en texte lisible—aucune installation requise.
Lors de la construction d'applications web, vous rencontrerez Base64 constamment. Les pièces jointes par e-mail l'utilisent via l'encodage MIME. Les URI de données en CSS et HTML s'appuient sur lui pour intégrer des images directement dans le code. Les API REST l'utilisent pour transmettre des données binaires dans des charges utiles JSON. Même l'authentification HTTP Basic dépend de Base64 (bien que ce ne soit pas un chiffrement—plus de détails ci-dessous).
Voici ce qui rend cet encodage essentiel : les protocoles textuels comme HTTP, JSON et XML n'ont pas été conçus pour gérer des données binaires brutes de manière fiable. Envoyez une image binaire via une API JSON sans encodage, et vous risquez fort de faire face à une corruption de données. Base64 garantit que vos données binaires survivent au voyage en les représentant entièrement avec des caractères ASCII sûrs.
Encodage de texte en Base64 :
Décodage de Base64 en texte :
Le mode de conversion en direct met à jour les résultats automatiquement lors de la saisie, parfait pour les tests et le débogage rapides. L'outil gère le texte UTF-8, y compris les emojis et les caractères internationaux.
L'encodage transforme chaque trois octets (24 bits) de données d'entrée en quatre caractères Base64. Pensez-y comme une traduction où des groupes de 3 octets d'entrée deviennent des groupes de 4 caractères de sortie.
Voici le processus d'encodage base64 étape par étape :
Que se passe-t-il quand votre entrée n'est pas divisible par 3 ? Des caractères de remplissage ("=") comblent l'écart. Cela maintient le ratio constant de 4:3 entre les longueurs de sortie et d'entrée.
Pour une séquence d'octets , les caractères Base64 correspondants sont calculés comme suit :
Où représente le -ème caractère de l'alphabet Base64.
Le décodage inverse l'encodage en convertissant les caractères Base64 en binaire :
Le remplissage garantit que la longueur de sortie est toujours un multiple de 4 caractères :
Une erreur courante est de supprimer les caractères de remplissage lors du stockage des chaînes Base64. Bien que certains décodeurs gèrent l'absence de remplissage, les implémentations strictes le rejetteront. Conservez le remplissage sauf si vous êtes certain que votre décodeur est tolérant.
Parcourons l'encodage de « Hello » à l'aide d'un convertisseur base64 :
SGVsbG8=Remarquez le bourrage « = » à la fin. Comme « Hello » contient 5 octets (non divisible par 3), nous avons besoin d'un bourrage pour indiquer que le dernier groupe n'est pas complet.
La formule pour calculer la longueur de la chaîne encodée :
Où représente la fonction plafond (arrondi à l'entier supérieur).
Voici où vous rencontrerez l'encodage base64 dans les systèmes de production :
Les protocoles de messagerie ont été conçus pour du texte ASCII 7 bits. Lorsque vous joignez un PDF ou une image, MIME utilise Base64 pour convertir les fichiers binaires en texte sûr pour les e-mails. C'est pourquoi les pièces jointes sont environ 33% plus volumineuses que les fichiers originaux—c'est le surcoût de Base64.
Avez-vous déjà intégré une image directement dans CSS ou HTML ? C'est Base64 qui est à l'œuvre :
1<img src="data:image/png;base64,iVBORw0KGgoAAAANS..." />
2Cette technique réduit les requêtes HTTP en intégrant directement des ressources dans le code. Cependant, elle est préférable pour les petites images (moins de 10 Ko)—les fichiers plus volumineux ralentissent le rendu de la page car ils ne peuvent pas être mis en cache séparément.
Les API REST utilisent couramment Base64 pour envoyer des données binaires via JSON. Lors du téléchargement d'images via un point de terminaison API qui n'accepte que JSON, vous encodez le fichier en Base64. Gardez à l'esprit que cela ajoute 33% à la taille de la charge utile, donc envisagez multipart/form-data pour les fichiers volumineux.
L'en-tête Authorization utilise Base64 pour encoder les identifiants :
1Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
2Avertissement critique : Base64 n'est PAS un chiffrement. N'importe qui peut le décoder instantanément. Utilisez toujours HTTPS—n'envoyez jamais d'identifiants encodés en Base64 sur HTTP brut.
Les jetons Web JSON (JWT) utilisent l'encodage Base64URL (une variante sûre pour les URL) pour leurs trois segments. Cela permet de transmettre les jetons en toute sécurité dans les URL et les en-têtes HTTP.
Lorsque votre base de données ne prend pas en charge les colonnes binaires ou que vous devez stocker des données binaires dans des champs JSON, Base64 offre une solution sûre pour le texte. Notez que cela augmente les exigences de stockage de 33%.
Les cookies ne doivent contenir que des caractères ASCII. Lors du stockage de structures de données complexes ou de données binaires dans des cookies, l'encodage Base64 les rend compatibles avec les cookies.
Avant d'encoder tout en Base64, considérez ces situations où ce n'est pas le bon choix :
Transferts de fichiers volumineux : L'augmentation de taille de 33% impacte significativement la bande passante et les temps de chargement. Utilisez plutôt un transfert binaire direct (multipart/form-data).
Stockage d'images côté client : Les images Base64 dans CSS ou HTML ne peuvent pas être mises en cache séparément et bloquent le rendu de la page. Stockez les images en tant que fichiers séparés pour de meilleures performances.
Stockage de fichiers volumineux en base de données : Stocker des chaînes Base64 de plusieurs mégaoctets dans des champs TEXT de base de données gaspille de l'espace de stockage et ralentit les requêtes. Utilisez plutôt des colonnes BLOB ou des services de stockage de fichiers (S3, CloudFlare R2).
Besoins de sécurité : Base64 ne fournit aucune sécurité. Ne l'utilisez pas pour "masquer" des clés API, des mots de passe ou des données sensibles. Utilisez un chiffrement approprié.
Scénarios haute performance : L'encodage/décodage Base64 ajoute une charge CPU. Lors du traitement de milliers de requêtes par seconde, la gestion binaire directe est plus performante.
Base64 n'est pas toujours le meilleur choix. Voici quand envisager des alternatives :
Le Base64 standard utilise "+" et "/" qui cassent les URL. Le Base64 sécurisé pour URL les remplace par "-" et "_". Utilisez cette variante pour :
Base32 produit une sortie plus longue (surcharge de 40% contre 33%) mais offre l'insensibilité à la casse. Choisissez Base32 quand :
Hex double la taille des données (surcharge de 100%) mais est simple et universellement pris en charge. Il est idéal pour :
Pour les fichiers volumineux, ignorez complètement l'encodage texte. Utilisez multipart/form-data ou HTTP binaire avec les en-têtes Content-Type appropriés. Cela évite la pénalité de taille de 33% et améliore les performances.
Lors de l'encodage de texte volumineux ou de données répétitives, compressez-le d'abord (gzip ou deflate), puis appliquez Base64. Cela aboutit souvent à une sortie plus petite que l'encodage Base64 brut seul.
Base64 est né du besoin des premiers systèmes informatiques de transmettre des données binaires sur des canaux textuels. La spécification formelle est apparue pour la première fois dans RFC 989 (1987) pour Privacy Enhanced Mail (PEM), puis a évolué à travers RFC 1421 (1993) et RFC 2045 (1996) dans le cadre de MIME.
Le nom "Base64" reflète son alphabet de 64 caractères. Ce n'était pas arbitraire — 64 égale 2^6, rendant la conversion binaire vers Base64 mathématiquement efficace grâce à des opérations simples de décalage de bits.
Les variantes Base64 actuelles incluent :
Après plus de 35 ans, Base64 reste essentiel au développement web moderne, en particulier avec la domination des API JSON et des services web.
Voici des exemples d'encodage et de décodage Base64 dans différents langages de programmation :
[Le reste du contenu reste identique, avec les exemples de code traduits]
Faites attention à ces problèmes lors de l'utilisation d'un décodeur ou encodeur base64 :
Le problème : L'encodage de texte avec des emojis ou des caractères internationaux sans encoder d'abord en UTF-8 produit une sortie corrompue.
La solution : Toujours convertir en octets UTF-8 avant l'encodage Base64. En JavaScript, cela signifie gérer correctement les caractères multi-octets — le btoa() intégré échoue avec Unicode.
Le problème : Certains systèmes suppriment les caractères de bourrage "=", ce qui fait échouer les décodeurs stricts.
La solution : Avant de décoder, vérifiez si la longueur est un multiple de 4. Si ce n'est pas le cas, ajoutez des caractères "=" : while (str.length % 4) str += '='
Le problème : Les implémentations MIME héritées ajoutent des sauts de ligne tous les 76 caractères. Les API modernes les rejettent souvent.
La solution : Supprimez tous les sauts de ligne et les espaces avant de décoder : str.replace(/\s/g, '')
Le problème : L'utilisation de Base64 standard (+, /) dans les URL cause des problèmes d'encodage ou rompt le routage.
La solution : Pour les URL, utilisez la variante compatible URL. Convertissez entre elles :
+ par - et / par _Le problème : L'encodage de fichiers de plusieurs mégaoctets en mémoire peut bloquer les navigateurs ou faire planter les applications.
La solution : Utilisez des API de streaming ou découpez les données. Les navigateurs modernes prennent en charge l'API Streams pour traiter les fichiers volumineux sans tout charger en mémoire.
Erreur critique : Traiter Base64 comme un chiffrement ou une obfuscation sécurisée.
La réalité : Base64 est complètement réversible en millisecondes. Ne l'utilisez jamais pour "cacher" des données sensibles. C'est pour l'encodage, pas la sécurité. Utilisez toujours un chiffrement approprié (AES, RSA) quand la sécurité est importante.
Non. Base64 est un encodage, pas un chiffrement. N'importe qui peut décoder Base64 instantanément sans clé. Le chiffrement nécessite une clé secrète et est difficile à inverser computationnellement. Si vous avez besoin de sécurité, utilisez des algorithmes de chiffrement comme AES-256, puis encodez éventuellement les données chiffrées en Base64 pour la transmission.
L'augmentation de 33% de la taille est inhérente à l'algorithme. Chaque 3 octets d'entrée deviennent 4 caractères de sortie car Base64 utilise 6 bits par caractère tandis que les octets standard utilisent 8 bits. La formule : 3 octets × 8 bits = 24 bits ; 24 bits ÷ 6 bits par caractère = 4 caractères.
Oui, les images peuvent être encodées en Base64. C'est courant pour les URI de données en HTML/CSS et les charges utiles d'API. Cependant, considérez ces compromis : les images Base64 ne peuvent pas être mises en cache séparément, augmentent la taille de la page de 33% et ralentissent le rendu initial. Utilisez-le pour de petites icônes (moins de 10 Ko), pas pour de grandes photos.
Base64URL est sûr pour les URL. Le Base64 standard utilise "+" et "/" qui ont des significations spéciales dans les URL (espace et séparateur de chemin). Base64URL les remplace par "-" et "_" qui sont sûrs dans les URL. Les jetons JWT utilisent Base64URL pour cette raison.
Causes courantes :
Base64 encode des données binaires en texte, et le décodage inverse ce processus. Vous pouvez encoder n'importe quel fichier binaire (PDF, image, vidéo) en Base64, le transmettre en texte, puis le décoder à nouveau en binaire. Le résultat décodé est octet par octet identique à l'original.
SMTP (protocole de messagerie) a été conçu pour du texte ASCII 7 bits. Les pièces jointes binaires seraient corrompues pendant la transmission. MIME utilise Base64 pour convertir les fichiers binaires en texte compatible ASCII qui survit au routage des e-mails. L'augmentation de 33% de la taille est le prix de la compatibilité.
Commencez par encoder votre texte en octets UTF-8, puis appliquez l'encodage Base64 à ces octets. Cela garantit que les emoji, les caractères accentués et les scripts internationaux s'encodent correctement. En JavaScript, utilisez TextEncoder au lieu de btoa() qui échoue sur Unicode :
1new TextEncoder().encode(text) // Convertir d'abord en octets UTF-8
2L'encodage/décodage Base64 est relativement rapide (millions d'octets par seconde sur les CPU modernes), mais le traitement de fichiers de plusieurs mégaoctets en mémoire peut provoquer un gel du navigateur. Pour les fichiers de plus de 1 Mo, utilisez des approches de streaming ou des Web Workers pour éviter de bloquer le thread principal.
Utilisez Base64URL (la variante sûre pour les URL) au lieu du Base64 standard. Les caractères "+" et "/" du Base64 standard posent problème dans les URL. Les bibliothèques comme JWT utilisent Base64URL automatiquement. Pour convertir : remplacez + par -, remplacez / par _, et supprimez éventuellement les caractères de remplissage "=".
Découvrez plus d'outils qui pourraient être utiles pour votre flux de travail