Base64
Le Base64 représente des données binaires ou du texte sous forme de caractères sûrs, transportables dans un e-mail, une URL ou un fichier JSON. Cet outil encode votre texte en Base64 et décode dans l’autre sens une chaîne existante. Pratique pour lire un contenu encodé ou en préparer un. Tout se traite dans votre navigateur.
Lancer gratuitement
Tout se passe dans votre navigateur : gratuit, sans envoi de vos données.
À quoi sert le Base64
Certains canaux n’acceptent que du texte simple : un en-tête d’e-mail, un champ JSON, une adresse web. Y glisser des données binaires — une image, un fichier — poserait problème. Le Base64 les traduit en un alphabet de caractères sûrs, quitte à allonger le contenu d’environ un tiers. Ce n’est pas du chiffrement : n’importe qui peut décoder une chaîne Base64, elle ne protège rien, elle transporte seulement.
Encoder et décoder, sans confusion
L’outil fonctionne dans les deux sens : collez du texte pour obtenir sa version Base64, ou collez une chaîne Base64 pour retrouver le contenu d’origine. C’est souvent le second cas qui rend service, quand on tombe sur une valeur encodée dans une réponse d’API ou un token et qu’on veut simplement savoir ce qu’elle cache. Le résultat s’affiche instantanément, prêt à copier.
Base64 n’est pas Base64URL
Une variante, le Base64URL, remplace deux caractères gênants dans une adresse pour que la chaîne passe sans encombre dans une URL. On la rencontre notamment dans les JWT. Distinguer les deux évite bien des erreurs de décodage : une chaîne qui semble corrompue en Base64 classique est parfois du Base64URL parfaitement valide, qu’il suffit de décoder dans le bon mode. Repérer la variante, c’est s’épargner une fausse alerte de corruption.
Traitement local, sans envoi
Encoder ou décoder se fait dans votre navigateur, sur cette page : le contenu n’est pas transmis à un serveur, ce qui compte quand la chaîne cache une donnée sensible. Pour intégrer la conversion à un script ou une chaîne de traitement via l’API, l’appel coûte $0.002 la requête, en dollars US ; l’usage manuel reste gratuit et illimité. La page mène la conversion ; l’API n’est qu’une commodité pour l’automatiser à grande échelle.
Cas d’usage
Lire une valeur encodée
Nadia Benali tombe sur une chaîne Base64 dans une réponse d’API ; en la décodant, elle découvre qu’il s’agit d’un identifiant parfaitement lisible.
Intégrer une petite image
Thomas Rousseau encode un logo en Base64 pour l’inclure directement dans un e-mail HTML, sans pièce jointe séparée.
Déboguer un token
Sophie Nguyen décode la charge utile Base64URL d’un jeton pour vérifier les données qu’il transporte.
Questions fréquentes
Le Base64 chiffre-t-il mes données ?
Non. C’est un encodage, pas un chiffrement : n’importe qui peut décoder une chaîne Base64. Il sert à transporter des données dans des canaux qui n’acceptent que du texte, pas à les protéger.
Pourquoi le décodage échoue-t-il parfois ?
Souvent parce que la chaîne est en Base64URL, une variante utilisée dans les URL et les JWT, avec deux caractères différents. Décodée comme du Base64 classique, elle paraît invalide. Vérifiez la variante attendue.
Le Base64 augmente-t-il la taille ?
Oui, d’environ un tiers, puisqu’il représente les données sur un alphabet réduit. C’est le prix du transport sûr à travers des canaux limités au texte.
Mon contenu est-il envoyé sur vos serveurs ?
Non. L’encodage et le décodage se font dans votre navigateur ; rien n’est transmis ni conservé. Vous pouvez traiter une chaîne sensible sans qu’elle sorte de l’appareil.
Est-ce payant ?
Non dans le navigateur, où l’usage est gratuit et illimité. Pour automatiser la conversion via l’API, le tarif est de $0.002 par requête, en dollars US.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/dev/base64 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/dev/base64", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/base64",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/base64", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/base64", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"items": [
"valor-1",
"valor-2"
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.base64",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |