RFC 4648 · Encodeur et décodeur
Encodez tout en Base64, sans rien envoyer.
Un encodeur et décodeur Base64 en ligne et gratuit pour le texte, les fichiers et les images, exécuté en JavaScript dans votre propre onglet. Rien n’est envoyé : l’outil continue de fonctionner hors ligne et n’a aucune limite de taille.
- Encode pendant la saisie
- Texte, fichiers et images
- Modes URL-safe et MIME
- Sans pub ni inscription
Déposez un fichier ou une image ici
ou . Rien n’est envoyé : le fichier ne quitte jamais votre ordinateur.
Options
Prêt à coller
Ctrl+Enter encoder Ctrl+Shift+C copier le résultat Ctrl+Shift+X inverser le sens
Encoder en Base64 en ligne : gratuit, instantané et privé
Cet outil pour encoder en Base64 en ligne travaille dans votre navigateur, pas sur un serveur. Tapez dans le champ ci-dessus et le Base64 s’affiche au fur et à mesure : pas de bouton, pas de rechargement, pas d’envoi. Passez sur Décoder pour l’opération inverse, ou ouvrez l’onglet Fichier et image pour encoder une image en Base64 et obtenir une data URI à coller directement dans du HTML ou du CSS.
Tout ce que définit la norme est là : l’alphabet standard, le Base64 URL-safe (RFC 4648 §5), les lignes MIME de 76 caractères, les fins de ligne LF et CRLF, l’encodage ligne par ligne et six jeux de caractères, de l’UTF-8 à l’ISO-8859-1 et l’UTF-16. Si vous préférez encoder en Base64 dans votre code, les exemples ci-dessous couvrent Python, JavaScript, Linux et macOS, PowerShell, PHP, Java, Go, C# et Ruby.
Dernière mise à jour :
Pourquoi celui-ci
Toute la différence : l’endroit où se fait l’encodage.
La plupart des outils Base64 envoient votre fichier à un serveur, l’encodent là-bas et vous renvoient un lien de téléchargement. Vos données quittent donc votre machine pour une transformation que votre navigateur fait en quelques microsecondes. Cet outil n’envoie jamais cette requête.
| Fonctionnalité | freebase64encode.com | Encodeur en ligne classique |
|---|---|---|
| Où vos données sont traitées | Toujours dans votre onglet | Envoyées sur un serveur |
| Limite de taille de fichier | Seulement la mémoire de votre appareil | Souvent plafonnée à 100 Mo |
| Fichiers stockés sur un serveur | Jamais : il n’y a aucun point d’envoi | Conservés temporairement, puis supprimés |
| Fonctionne hors ligne | Oui, une fois la page chargée | Non |
| Encodage en direct pendant la saisie | Activé par défaut | En option ou via un bouton |
| Encoder et décoder | Une page, un clic pour inverser | Deux pages distinctes |
| Image → data URI + HTML/CSS/Markdown | Intégré, avec aperçu | Non proposé |
| Exemples de code en 9 langages | Sur la page | Non proposé |
| Surcoût de taille affiché | Octets et % en direct | Non affiché |
| Publicités et bandeaux cookies | Aucun, et aucun cookie de suivi | Généralement présents |
Dans votre code
Encoder en Base64 en Python, JavaScript, Bash, PowerShell et cinq autres.
Du code prêt à copier-coller pour encoder et décoder dans les langages les plus recherchés, avec pour chacun le piège qui fait perdre un après-midi à tout le monde.
Encoder en Base64 en Python
Python intègre Base64 dans sa bibliothèque standard. Le piège classique : b64encode attend des bytes, pas un str, il faut donc d’abord encoder le texte en UTF-8.
import base64
# Encode a string ─ note the .encode("utf-8"): b64encode takes bytes, not str
text = "Man is distinguished"
encoded = base64.b64encode(text.encode("utf-8")).decode("ascii")
print(encoded) # TWFuIGlzIGRpc3Rpbmd1aXNoZWQ=
# Decode it back
decoded = base64.b64decode(encoded).decode("utf-8")
# URL-safe, unpadded (RFC 4648 §5) ─ the JWT flavour
base64.urlsafe_b64encode(b"data").rstrip(b"=")
# Encode a file, wrapped at 76 characters for MIME
with open("photo.png", "rb") as f:
mime = base64.encodebytes(f.read()).decode("ascii")
# Build a data URI for an image
uri = "data:image/png;base64," + base64.b64encode(open("photo.png", "rb").read()).decode() Encoder en Base64 en JavaScript
btoa() est l’API historique du navigateur, mais elle lève une InvalidCharacterError dès qu’un caractère dépasse U+00FF. Pour du texte Unicode, convertissez-le d’abord en octets avec TextEncoder.
// Browser, ASCII only
btoa("hello"); // "aGVsbG8="
atob("aGVsbG8="); // "hello"
// Browser, Unicode-safe ─ btoa() throws above U+00FF
const bytes = new TextEncoder().encode("héllo 🎉");
const b64 = btoa(Array.from(bytes, (b) => String.fromCharCode(b)).join(""));
const text = new TextDecoder().decode(
Uint8Array.from(atob(b64), (c) => c.charCodeAt(0))
);
// Node.js
Buffer.from("hello", "utf8").toString("base64");
Buffer.from(b64, "base64").toString("utf8");
// Modern runtimes ─ no btoa() dance needed
new TextEncoder().encode("hello").toBase64(); // "aGVsbG8="
Uint8Array.fromBase64("aGVsbG8=");
// URL-safe: swap the two characters URLs reserve, then drop padding
const urlSafe = b64.replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
// Encode a file the user picked, without uploading it
const buf = new Uint8Array(await file.arrayBuffer());
const fileB64 = btoa(Array.from(buf, (b) => String.fromCharCode(b)).join("")); Encoder en Base64 sous Linux, macOS et Bash
GNU coreutils fournit la commande base64 sur tous les systèmes Linux. macOS embarque la version BSD, aux options différentes : les deux sont présentées ci-dessous.
# Encode a file
base64 photo.png > photo.b64
# Encode a string ─ use printf, not echo, or you encode a trailing newline too
printf %s 'hello' | base64 # aGVsbG8=
echo 'hello' | base64 # aGVsbG8K ← the K is the newline
# One unbroken line (GNU): disable wrapping
base64 -w 0 photo.png
# MIME-compliant 76-character lines
base64 -w 76 photo.png
# Decode
base64 -d photo.b64 > photo.png
echo 'aGVsbG8=' | base64 --decode
# URL-safe output
base64 -w 0 photo.png | tr '+/' '-_' | tr -d '='
# macOS / BSD base64 ─ no -w flag; use -i / -o, and -D to decode
base64 -i photo.png -o photo.b64
base64 -D -i photo.b64 -o photo.png
# Also available almost everywhere ─ -A keeps it on one line
openssl base64 -A -in photo.png
# Copy straight to the clipboard on macOS
base64 -i photo.png | pbcopy Encoder en Base64 avec PowerShell et Windows
PowerShell appelle directement .NET. Choisissez l’encodage du texte avec soin : [Text.Encoding]::Unicode correspond à l’UTF-16 LE, attendu par powershell -EncodedCommand mais pas par la plupart des API.
# Encode a string as UTF-8
$b64 = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('hello')) # aGVsbG8=
# Decode it back
[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($b64))
# Encode a file
[Convert]::ToBase64String([IO.File]::ReadAllBytes("$PWD\photo.png")) | Set-Content photo.b64
# Decode a file
[IO.File]::WriteAllBytes("$PWD\photo.png", [Convert]::FromBase64String((Get-Content photo.b64 -Raw)))
# -EncodedCommand needs UTF-16 LE, not UTF-8
$cmd = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes('Get-Date'))
powershell -EncodedCommand $cmd
# cmd.exe: certutil ships with Windows (adds BEGIN/END header lines)
certutil -encode photo.png photo.b64
certutil -decode photo.b64 photo.png Encoder en Base64 en PHP
base64_encode() et base64_decode() sont intégrées, sans extension. Activez le mode strict de base64_decode() quand l’entrée n’est pas fiable.
$encoded = base64_encode('hello'); // aGVsbG8=
$decoded = base64_decode($encoded);
// Strict mode returns false instead of silently skipping invalid characters
$safe = base64_decode($input, true);
if ($safe === false) { /* not valid Base64 */ }
// URL-safe, unpadded
$url = rtrim(strtr(base64_encode($raw), '+/', '-_'), '=');
// A file as a data URI
$uri = 'data:image/png;base64,' . base64_encode(file_get_contents('photo.png'));
// MIME, 76-character lines
$mime = chunk_split(base64_encode($raw), 76, "\r\n"); Encoder en Base64 en Java
java.util.Base64 fait partie du JDK depuis Java 8 et propose trois encodeurs (basique, URL-safe et MIME) : une bibliothèque tierce est rarement nécessaire.
import java.util.Base64;
import java.nio.charset.StandardCharsets;
import java.nio.file.*;
// Always name the charset explicitly ─ the platform default is a portability bug
String encoded = Base64.getEncoder()
.encodeToString("hello".getBytes(StandardCharsets.UTF_8));
byte[] raw = Base64.getDecoder().decode(encoded);
String text = new String(raw, StandardCharsets.UTF_8);
// URL-safe, unpadded (RFC 4648 §5)
String jwtPart = Base64.getUrlEncoder().withoutPadding().encodeToString(bytes);
// MIME ─ 76-character lines separated by CRLF
String mime = Base64.getMimeEncoder()
.encodeToString(Files.readAllBytes(Path.of("photo.png"))); Encoder en Base64 en Go
encoding/base64 propose quatre encodages. Std et URL sont avec remplissage ; RawStd et RawURL sont les variantes sans remplissage.
import (
"encoding/base64"
"io"
"os"
)
encoded := base64.StdEncoding.EncodeToString([]byte("hello")) // aGVsbG8=
decoded, err := base64.StdEncoding.DecodeString(encoded)
if err != nil { /* not valid Base64 */ }
// URL-safe and unpadded ─ what JWT libraries use
token := base64.RawURLEncoding.EncodeToString(raw)
// A file
data, _ := os.ReadFile("photo.png")
uri := "data:image/png;base64," + base64.StdEncoding.EncodeToString(data)
// Stream a large file instead of holding it all in memory
f, _ := os.Open("video.mp4")
defer f.Close()
w := base64.NewEncoder(base64.StdEncoding, os.Stdout)
io.Copy(w, f)
w.Close() // Close() flushes the final partial group ─ don't skip it Encoder en Base64 en C#
Convert.ToBase64String() couvre le cas courant. .NET 9 a ajouté System.Buffers.Text.Base64Url pour la variante URL-safe.
using System;
using System.IO;
using System.Text;
string encoded = Convert.ToBase64String(Encoding.UTF8.GetBytes("hello"));
string text = Encoding.UTF8.GetString(Convert.FromBase64String(encoded));
// MIME ─ inserts CRLF every 76 characters
Convert.ToBase64String(bytes, Base64FormattingOptions.InsertLineBreaks);
// URL-safe (.NET 9+)
System.Buffers.Text.Base64Url.EncodeToString(bytes);
// A file as a data URI
string uri = "data:image/png;base64," +
Convert.ToBase64String(File.ReadAllBytes("photo.png"));
// Validate untrusted input without throwing
if (Convert.TryFromBase64String(input, buffer, out int written)) { /* ok */ } Encoder en Base64 en Ruby
Préférez strict_encode64 à encode64 : ce dernier coupe la sortie tous les 60 caractères et ajoute un saut de ligne final, ce qui surprend quand on compare des hachages.
require 'base64'
encoded = Base64.strict_encode64('hello') # "aGVsbG8="
decoded = Base64.decode64(encoded)
# encode64 wraps at 60 chars and adds a trailing newline ─ rarely what you want
Base64.encode64('hello') # "aGVsbG8=\n"
# URL-safe (RFC 4648 §5)
Base64.urlsafe_encode64(raw, padding: false)
# A file ─ binread avoids any encoding conversion
Base64.strict_encode64(File.binread('photo.png')) Le mécanisme
Comment fonctionne vraiment l’encodage Base64.
Base64 réécrit des octets quelconques avec 64 caractères que tous les systèmes comprennent. Il prend trois octets (24 bits) et les redécoupe en quatre groupes de 6 bits. Chaque groupe est un index dans l’alphabet A–Z a–z 0–9 + /. Comme 3 octets donnent toujours 4 caractères, la sortie est exactement un tiers plus grande.
Exemple détaillé: Man → TWFu
| Texte | M | a | n |
|---|---|---|---|
| ASCII | 77 | 97 | 110 |
| Bits | 01001101 01100001 01101110 | ||
| Groupes de 6 bits | 010011 010110 000101 101110 | ||
| Index | 19 · 22 · 5 · 46 | ||
| Base64 | TWFu | ||
Quand la longueur de l’entrée n’est pas un multiple de trois, le dernier groupe est complété par = pour que la sortie reste un multiple de quatre. Un octet restant donne ==, deux octets restants donnent =.
Exemples d’encodage Base64
Voici des chaînes courantes une fois encodées en Base64 depuis l’UTF-8. Collez-en une dans l’outil ci-dessus pour vérifier.
| Entrée | Base64 | Remarque |
|---|---|---|
| Hello, World! | SGVsbG8sIFdvcmxkIQ== | Deux = car 13 octets en laissent un de trop |
| Hello World | SGVsbG8gV29ybGQ= | 11 octets, donc un seul = |
| hello | aGVsbG8= | |
| base64 | YmFzZTY0 | 6 octets sont divisibles par 3 : pas de remplissage |
| user:password | dXNlcjpwYXNzd29yZA== | Valeur d’un en-tête HTTP Basic auth |
| héllo 🎉 | aMOpbGxvIPCfjok= | UTF-8 : é fait 2 octets, l’emoji 4 |
| {"alg":"HS256","typ":"JWT"} | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 | En-tête de JWT, URL-safe et sans remplissage |
L’alphabet Base64 (table d’index)
Chaque valeur de 6 bits, de 0 à 63, correspond à un caractère. L’alphabet URL-safe est identique, sauf que 62 devient - et 63 devient _. Le = sert au remplissage et ne fait pas partie de l’alphabet.
| Valeur | Caractère | Valeur | Caractère | Valeur | Caractère | Valeur | Caractère |
|---|---|---|---|---|---|---|---|
| 0 | A | 16 | Q | 32 | g | 48 | w |
| 1 | B | 17 | R | 33 | h | 49 | x |
| 2 | C | 18 | S | 34 | i | 50 | y |
| 3 | D | 19 | T | 35 | j | 51 | z |
| 4 | E | 20 | U | 36 | k | 52 | 0 |
| 5 | F | 21 | V | 37 | l | 53 | 1 |
| 6 | G | 22 | W | 38 | m | 54 | 2 |
| 7 | H | 23 | X | 39 | n | 55 | 3 |
| 8 | I | 24 | Y | 40 | o | 56 | 4 |
| 9 | J | 25 | Z | 41 | p | 57 | 5 |
| 10 | K | 26 | a | 42 | q | 58 | 6 |
| 11 | L | 27 | b | 43 | r | 59 | 7 |
| 12 | M | 28 | c | 44 | s | 60 | 8 |
| 13 | N | 29 | d | 45 | t | 61 | 9 |
| 14 | O | 30 | e | 46 | u | 62 | + |
| 15 | P | 31 | f | 47 | v | 63 | / |
Les variantes de Base64 comparées
« Base64 » désigne une famille. Toutes les variantes partagent les mêmes 62 lettres et chiffres et diffèrent par les deux derniers caractères, le remplissage et les retours à la ligne. L’outil ci-dessus produit les trois premières.
| Variante | Spécification | Caractères 62 / 63 | Remplissage | Retours à la ligne | Usage |
|---|---|---|---|---|---|
| Standard | RFC 4648 §4 | + / | Obligatoire | Aucun | Usage général, JSON, data URI |
| URL-safe (base64url) | RFC 4648 §5 | - _ | Généralement omis | Aucun | JWT, URL, noms de fichiers |
| MIME | RFC 2045 | + / | Obligatoire | CRLF tous les 76 | Pièces jointes d’e-mail |
| PEM | RFC 7468 | + / | Obligatoire | Tous les 64, avec BEGIN/END | Certificats TLS, clés |
Où l’on utilise Base64
Pièces jointes d’e-mail
SMTP a été conçu pour du texte sur 7 bits. MIME (RFC 2045) encode les pièces jointes en Base64 et coupe la sortie tous les 76 caractères pour que les serveurs de messagerie la transmettent sans la modifier.
Data URI
data:image/png;base64,… intègre une petite image, une police ou un SVG directement dans le HTML ou le CSS et économise une requête. Intéressant en dessous de quelques kilo-octets ; au-delà, les 33 % de surpoids et la perte du cache coûtent plus cher que la requête.
Données JSON et XML
Aucun de ces formats ne peut contenir des octets arbitraires. Base64 transforme un fichier en simple chaîne qui passe dans n’importe quel parseur JSON : c’est ainsi que les données binaires circulent dans les API REST.
JWT et URL
Les JSON Web Tokens utilisent base64url, la variante RFC 4648 §5 avec - et _ à la place de + et / et sans remplissage, pour qu’un jeton tienne sans risque dans une URL, un cookie ou un en-tête.
HTTP Basic auth
Authorization: Basic, c’est littéralement base64(utilisateur:mot de passe). C’est un encodage, pas un chiffrement, et c’est précisément pour cela que Basic auth n’est acceptable qu’en HTTPS.
Configuration et secrets
Les Secrets Kubernetes, les certificats TLS au format PEM et les clés SSH stockent tous leurs données binaires en Base64, pour que le fichier reste un texte lisible, comparable et facile à copier.
Six erreurs qui font perdre un après-midi
Base64 n’est pas du chiffrement
N’importe qui peut le décoder en une commande. Ne l’utilisez jamais pour cacher un mot de passe, une clé d’API ou des données personnelles : utilisez un vrai chiffrement.
Des jeux de caractères différents abîment le texte
Base64 encode des octets, et un texte ne devient des octets qu’une fois un jeu de caractères choisi. Encodez en UTF-8, décodez en Latin-1, et vous obtenez des caractères illisibles. Gardez l’UTF-8 des deux côtés.
echo ajoute un saut de ligne
echo "hi" | base64 encode trois octets, pas deux, car echo ajoute \n. Utilisez printf %s pour encoder exactement ce que vous avez tapé.
Les retours à la ligne changent la chaîne
La sortie MIME contient un CRLF tous les 76 caractères. La plupart des décodeurs ignorent les espaces, mais une comparaison stricte ou un hachage de deux chaînes « identiques » échouera si l’une est coupée.
+ et / cassent les URL
Le + devient une espace quand une chaîne de requête est décodée comme un formulaire, et le / découpe les chemins. Utilisez la variante URL-safe dès que la valeur va dans une URL ou un nom de fichier.
Les données grossissent d’un tiers
Tous les 3 octets deviennent 4 caractères. Mettre un gros fichier en Base64 dans un corps JSON gonfle la bande passante et la mémoire des deux côtés : envoyez plutôt du multipart/form-data.
Questions
L’encodage Base64 en questions.
Qu’est-ce que l’encodage Base64 ?
Base64 est un schéma d’encodage binaire vers texte qui représente des données binaires avec 64 caractères ASCII imprimables (A–Z, a–z, 0–9, + et /). Il permet de faire transiter des données binaires sans risque par des canaux prévus pour du texte : corps d’e-mails, documents JSON et XML, en-têtes HTTP, URL et attributs HTML. Base64 est un encodage, pas un chiffrement : n’importe qui peut le décoder, il n’apporte donc aucune confidentialité.
Comment encoder du texte en Base64 en ligne ?
Collez ou tapez votre texte dans le champ d’entrée de cette page. Le résultat apparaît immédiatement dans le champ de sortie : aucun bouton à cliquer ni rechargement, car l’encodage se fait dans votre navigateur pendant la saisie. Cliquez sur Copier, ou appuyez sur Ctrl+Shift+C, pour copier la chaîne Base64 dans le presse-papiers.
Comment encoder une chaîne en Base64 ?
La chaîne est d’abord convertie en octets avec un jeu de caractères (presque toujours l’UTF-8), puis ces octets sont encodés en Base64. Sur cette page, c’est automatique : tapez la chaîne et copiez le résultat. Par exemple, "Hello, World!" donne SGVsbG8sIFdvcmxkIQ== en Base64. Dans le code, c’est une seule ligne dans tous les grands langages ; voyez les exemples pour Python, JavaScript, Bash, PowerShell, PHP, Java, Go, C# et Ruby.
Cet encodeur Base64 est-il sûr et confidentiel ?
Oui. Chaque octet est encodé localement par du JavaScript qui s’exécute dans votre propre onglet. Vos textes, fichiers et images ne sont jamais envoyés à un serveur, jamais enregistrés dans une base de données et jamais journalisés : le site est une page entièrement statique, sans aucun point d’envoi. Vous pouvez le vérifier en ouvrant l’onglet Réseau des DevTools pendant l’encodage, ou en vous déconnectant d’internet pour constater que l’outil fonctionne toujours.
Comment encoder en Base64 en Python ?
Utilisez le module intégré base64. Encodez avec base64.b64encode(data.encode("utf-8")).decode("ascii") et décodez avec base64.b64decode(encoded).decode("utf-8"). Notez que b64encode attend des bytes et non un str, d’où l’encodage préalable en UTF-8. Pour une sortie URL-safe, utilisez base64.urlsafe_b64encode, et pour une sortie MIME en lignes de 76 caractères, base64.encodebytes.
Comment encoder en Base64 avec PowerShell ou sous Windows ?
Dans PowerShell, lancez [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("hello")) pour encoder une chaîne, ou [Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\chemin\fichier.png")) pour encoder un fichier. Depuis cmd.exe, certutil -encode in.png out.b64 fonctionne sur toutes les installations de Windows, mais ajoute des lignes d’en-tête BEGIN et END. N’utilisez [Text.Encoding]::Unicode (UTF-16 LE) que pour powershell -EncodedCommand.
Comment encoder en Base64 en JavaScript ?
Pour du texte ASCII, btoa(str) encode et atob(str) décode. btoa échoue sur les caractères au-delà de U+00FF ; pour du texte Unicode, convertissez-le d’abord en octets : btoa(Array.from(new TextEncoder().encode(str), (b) => String.fromCharCode(b)).join("")). Évitez la forme avec spread String.fromCharCode(...bytes), qui fait déborder la pile d’appels sur de grosses entrées. Dans Node.js, utilisez Buffer.from(str, "utf8").toString("base64"). Les environnements récents proposent aussi Uint8Array.prototype.toBase64().
Comment encoder un fichier en Base64 sous Linux ?
Utilisez la commande base64 de coreutils : base64 fichier.txt l’encode et base64 -d fichier.b64 le décode. Ajoutez -w 0 pour désactiver les retours à la ligne quand il vous faut une seule ligne, ou -w 76 pour une sortie conforme à MIME. Pour encoder directement une chaîne, passez-la par un pipe : printf %s "hello" | base64. Préférez printf à echo pour ne pas inclure de saut de ligne final dans les octets encodés.
Comment encoder en Base64 sur Mac ?
macOS fournit la commande base64 BSD dans le Terminal. Encodez un fichier avec base64 -i fichier.png -o fichier.b64, une chaîne avec printf %s "hello" | base64, et décodez avec base64 -D -i fichier.b64 -o fichier.png. Contrairement au base64 GNU de Linux, il ne coupe pas les lignes par défaut et n’a pas d’option -w. Redirigez vers pbcopy pour copier directement le résultat dans le presse-papiers.
Comment encoder une image en Base64 ?
Ouvrez l’onglet Fichier et image de cette page et déposez votre image. Vous obtenez le Base64 brut, une data URI prête à coller (data:image/png;base64,...) et des extraits HTML, CSS et Markdown générés. Base64 rend une image environ 33 % plus lourde : réservez l’intégration aux petites images (moins de 5 Ko environ) et servez les plus grandes comme des fichiers normaux que le navigateur peut mettre en cache.
Qu’est-ce que le Base64 URL-safe ?
Le Base64 standard utilise + et /, qui ont un sens réservé dans les URL et les noms de fichiers. Le Base64 URL-safe (RFC 4648 §5, aussi appelé base64url) remplace + par - et / par _, et supprime généralement le remplissage =. C’est le format des JSON Web Tokens. Activez l’option URL-safe de cette page pour le produire.
Pourquoi ma chaîne Base64 se termine-t-elle par des signes = ?
Base64 traite l’entrée par groupes de 3 octets qui donnent 4 caractères. Quand la longueur de l’entrée n’est pas un multiple de 3, le dernier groupe est complété par des = pour que la sortie reste un multiple de 4. Un octet restant donne deux =, deux octets restants en donnent un. Ce remplissage ne contient aucune donnée et il est facultatif dans certaines variantes comme base64url.
De combien Base64 augmente-t-il la taille des données ?
D’environ 33 % : chaque groupe de 3 octets en entrée devient 4 caractères en sortie, soit un rapport de 4/3. La longueur exacte avec remplissage est de 4 × ⌈n / 3⌉ caractères pour n octets en entrée : 10 octets donnent 16 caractères et 1 Mo donne environ 1,33 Mo. En mode MIME, les retours à la ligne ajoutent environ 2,6 % (un CRLF de deux octets tous les 76 caractères). Cet outil affiche la taille exacte d’entrée et de sortie et le pourcentage de surcoût sous le résultat pendant la saisie.
Y a-t-il une limite de taille de fichier ?
Il n’y a aucune limite côté serveur, puisqu’aucun serveur n’intervient. La limite pratique est la mémoire de votre appareil et celle de l’onglet ; sur un ordinateur, les fichiers de quelques centaines de mégaoctets passent généralement, et cet outil traite les gros fichiers par blocs pour que le navigateur reste réactif. Les outils concurrents qui envoient les fichiers sur un serveur vous limitent souvent à 100 Mo.
L’encodage Base64 fonctionne-t-il avec l’Unicode et les emojis ?
Oui. Le texte est d’abord converti en octets avec le jeu de caractères choisi (UTF-8 par défaut, qui couvre tous les points de code Unicode, emojis compris), puis ces octets sont encodés en Base64. Des jeux de caractères différents entre l’encodeur et le décodeur sont la cause habituelle d’un texte illisible : gardez l’UTF-8 des deux côtés, sauf raison précise.