Encodeur Brainfuck
Saisissez « Hi » et obtenez un programme Brainfuck de 107 caractères prêt à lancer, composé uniquement de signes plus et de points d'affichage. L'outil fonctionne aussi dans l'autre sens : il exécute du Brainfuck, montre ce qu'il affiche et signale les crochets orphelins. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- Hi
- Mode de calcul
- Encode
- Encodage
- brainfuck
- Longueur de l'entrée
- 2
- Longueur de la sortie
- 107
Cet encodeur texte vers Brainfuck transforme du texte brut en un programme Brainfuck fonctionnel qui imprime ce texte, et exécute du code Brainfuck dans l’autre sens pour que vous voyiez ce qu’un programme imprime. Le mode encode parcourt chaque octet Latin-1, ajuste une seule cellule de bande avec la séquence plus courte de plus ou de moins sur l’anneau circulaire 0–255, puis émet un point après chaque caractère afin que le programme soit immédiatement exécutable. Le mode decode est un interpréteur classique à huit commandes sur une bande bornée : il valide l’appariement des crochets avant l’exécution, ignore les caractères non commandes comme le Brainfuck traditionnel, et échoue clairement en cas de crochets non appariés, de limites de pas ou de dépassement du pointeur.
Ce qu’est Brainfuck et ce que renvoie cet outil
Brainfuck est un langage ésotérique minimal à huit commandes qui déplacent un pointeur de données, incrémentent ou décrémentent la cellule courante, lisent ou écrivent un octet, et sautent sur zéro ou non zéro pour les boucles. Malgré le nom humoristique, c’est un modèle de calcul complet que les enseignants, auteurs d’énigmes et amateurs d’esolangs utilisent encore pour expliquer les machines à bande, l’arithmétique modulaire et la différence entre validation syntaxique et limites d’exécution.
Cette page se concentre sur deux tâches pratiques réellement recherchées : générer un programme Brainfuck qui imprime une chaîne donnée, et exécuter du code Brainfuck pour retrouver la sortie imprimée. Le mode decode accepte toute chaîne de commandes Brainfuck mélangée à des commentaires, car les caractères non commandes sont ignorés par convention, mais refuse les programmes dont les crochets ne s’emboîtent pas correctement.
Cas d’usage
Démos de cours et d’esolang
Montrez comment une machine à bande imprime une chaîne en générant un court programme Brainfuck et en l’exécutant en direct sans installer d’interpréteur local.
Questions fréquentes
Combien coûte l’encodeur texte vers Brainfuck ?
Il est gratuit dans votre navigateur sur cette page.
Quels caractères pouvez-vous encoder ?
Octets Latin-1 avec points de code 0–255. Un texte vide produit un programme vide.
Qu’est-ce qui rend un programme Brainfuck invalide ?
Un '[' ou ']' non apparié, un pointeur déplacé au-delà de l’une des extrémités de la bande de 30,000 cellules, un dépassement des limites de pas ou de sortie, ou un champ programme non chaîne. Les caractères non commandes sont ignorés, non rejetés.
Comment savoir ce qu'affiche un programme Brainfuck ?
Choisissez le décodage et collez le programme. Il s'exécute sur un ruban borné et vous montre ce qu'il affiche ; les lettres et autres caractères qui ne sont pas des commandes sont ignorés, les commentaires ne gênent donc pas.
Un programme Brainfuck peut-il lire une entrée ?
Oui. Vous pouvez fournir une entrée facultative pour la commande virgule, qui lit un octet à la fois. Une fois cette entrée épuisée, chaque virgule suivante enregistre zéro dans la cellule courante.
Outils associés
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/enc/brainfuck-encode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hi"}'const res = await fetch("https://api.kit.forhosting.com/enc/brainfuck-encode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hi"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/brainfuck-encode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hi"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/brainfuck-encode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hi"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hi"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/brainfuck-encode", 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
{
"text": "Hi"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.brainfuck_encode",
"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. |
Notes techniques
Le moteur n’appelle jamais un réseau, n’utilise jamais d’aléa et ne dépend jamais de l’horloge calendaire, de sorte que le même texte et le même mode produisent toujours le même résultat dans le navigateur et via l’API. Les contrôles typiques incluent l’encodage de Hi en un court programme de plus et de points, l’exécution de ce programme pour retrouver Hi, et le rejet d’un crochet ouvrant isolé avec invalid_input.
Ce qu’est Brainfuck et ce que renvoie cet outil
Le mode encode prend en charge les octets Latin-1 de zéro à deux cent cinquante-cinq afin que chaque caractère se mappe à une écriture de cellule et une impression ; les points de code au-delà de cette plage sont rejetés avec un message invalid_input clair plutôt qu’un mojibake silencieux. La réponse JSON inclut toujours result pour le programme généré ou la sortie d’exécution, mode qui reprend encode ou decode, encoding fixé à brainfuck, ainsi que input_length et output_length pour que les tests automatisés puissent affirmer les tailles sans reparser le payload. Le program_input optionnel fournit des octets à la commande virgule pendant le decode ; lorsque stdin est épuisé, la virgule stocke zéro. Il n’y a ni réparation silencieuse de crochets incorrects ni exécution illimitée : les plafonds de pas, de bande et de sortie protègent le Worker tout en gardant les programmes courts réussis rapides et gratuits dans le navigateur.
Comment text et mode sont lus et comment les résultats restent reproductibles
Encode rejette un texte manquant, des valeurs non chaîne, des chaînes plus longues que le plafond documenté, et tout caractère dont le point de code dépasse deux cent cinquante-cinq, en indiquant l’index du mauvais caractère pour que vous puissiez le corriger. Decode rejette une source manquante, des programmes trop grands, des crochets fermants non appariés, des crochets ouvrants non appariés, des déplacements du pointeur au-delà de l’une des extrémités de la bande de trente mille cellules, des sorties qui dépassent le plafond de sortie, et des exécutions qui dépassent le budget de pas, ce qui capture les boucles infinies classiques qui bloqueraient autrement une page gratuite. Le champ de payload privilégié est text, avec les alias input, value, s, program et message afin que formulaires, query strings et clients SDK réutilisent le même contrat sans renommer de colonnes. Mode vaut encode par défaut et accepte decode explicitement ; les alias op, direction et action mappent vers le même commutateur, et run ou execute sont traités comme decode pour les scripts qui voient la seconde direction comme une exécution plutôt qu’un déchiffrement. Comme chaque branche est un assemblage pur de chaînes ou une boucle d’interpréteur fixe, deux clients avec le même text, le même mode et le même program_input optionnel reçoivent des résultats identiques octet par octet entre versions du Worker tant que la règle de génération et les limites restent fixes. Associez l’exécution gratuite dans le navigateur de cette page à l’API tarifée lorsque vous avez besoin du résultat mathématique identique dans un pipeline automatisé sans réimplémenter vous-même un générateur Brainfuck.
Où l’encodeur et l’exécuteur Brainfuck s’intègrent à l’apprentissage, aux puzzles et aux tests
Les étudiants découvrent Brainfuck lorsqu’un cours présente des jeux d’instructions minimaux, lorsqu’un club organise une soirée esolang, ou lorsqu’un devoir demande d’imprimer Hello World sans langage conventionnel. Les concepteurs de puzzles et auteurs de CTF ont besoin d’un encodeur déterministe pour que le même flag ou indice devienne toujours le même programme, et d’un exécuteur pour que joueurs et vérificateurs contrôlent la sortie sans livrer un interpréteur séparé. Associez-le à d’autres aides d’encodage de texte lorsque vous construisez un petit laboratoire d’utilitaires déterministes gratuits pour l’éducation, les défis de sécurité et les tests de fumée opérationnels qui ne doivent jamais dépendre d’un appel réseau ou d’un modèle. Sur cette page le travail s’exécute entièrement dans votre navigateur ; via l’API chaque requête réussie coûte $0.002, la validation en échec n’est pas facturée, et rien n’est stocké après le retour de la réponse. Cette séparation — exploration interactive gratuite et API tarifée identique — correspond au reste du catalogue KIT de niveau A et vous permet de passer d’une démo au tableau à un pipeline automatisé sans changer le résultat encodé.
Cas d'intégration
Fixtures CTF et puzzles
Encodez des indices déterministes et vérifiez les programmes Brainfuck soumis par les joueurs par rapport à la sortie imprimée attendue dans des vérificateurs automatiques.
Paires golden en CI
Affirmez les résultats encode et run en intégration continue pour que générateurs et exemples de documentation ne dérivent jamais en silence.
Questions techniques
Quels modes sont pris en charge ?
mode=encode (par défaut) transforme le texte brut en un programme Brainfuck qui l’imprime. mode=decode exécute le code Brainfuck et renvoie la sortie imprimée. Les alias run et execute signifient aussi decode.
Le résultat est-il déterministe ?
Oui. Le même text, mode et program_input optionnel produisent toujours le même résultat, sans réseau, aléa ni comportement dépendant de la date.