Décodeur Protobuf en ligne

Décodez un message binaire Protocol Buffers sans le schéma .proto, dans votre navigateur. Vos octets restent sur votre appareil.

Vos octets protobuf sont décodés localement dans votre navigateur et ne sont jamais téléversés, mais évitez de coller des messages contenant de vrais secrets ou données personnelles dans tout outil.

Besoin de décoder un JWT à la place ? Essayez le Décodeur JWT.

À propos de Décodeur Protobuf

Ce décodeur protobuf lit un message binaire Protocol Buffers directement depuis ses octets, sans aucun fichier .proto requis. Collez la charge utile en hex ou base64 et le décodeur parcourt le format filaire brut : il lit chaque tag pour retrouver le numéro de champ et le type filaire, puis interprète la valeur. Les varints sont affichés en lectures int64, uint64 et zig-zag ; les champs fixed64 et fixed32 exposent leurs vues entier, double et float ; et les champs à longueur préfixée sont d’abord tentés comme messages imbriqués, puis comme texte UTF-8, puis comme octets hex bruts. Le résultat est rendu sous forme d’arbre de champs indenté, les champs répétés étant regroupés sous le même numéro. Il est conçu pour les ingénieurs qui déboguent du trafic gRPC, des paquets capturés ou des blobs proto opaques issus des logs. Tout s’exécute dans votre navigateur, les octets que vous collez sont décodés localement et ne quittent jamais votre appareil.

Fonctionnalités

Comment utiliser Décodeur Protobuf

  1. Copiez votre charge utile protobuf sous forme de chaîne hex ou base64.
  2. Collez-la dans la zone du message Protobuf.
  3. Laissez le format sur Auto, ou choisissez Hex ou Base64 si la détection est incorrecte.
  4. Lisez l’arbre de champs décodé, en dépliant les messages imbriqués pour inspecter les valeurs.

Exemple

Entrée

08 96 01 12 07 74 65 73 74 69 6e 67

Sortie

#1  varint   wire 0   150
#2  string   wire 2   "testing"

Le champ 1 est un varint (150) et le champ 2 une chaîne UTF-8 à longueur préfixée.

Erreurs courantes et dépannage

Foire aux questions

Puis-je décoder du protobuf sans le fichier .proto ?
Oui. Ce décodeur protobuf lit le format filaire brut, il retrouve donc chaque numéro de champ, type filaire et valeur directement depuis les octets. Sans le schéma, il ne peut pas connaître les noms de champ d’origine ni savoir si un nombre était signé, non signé ou une énumération, il affiche donc les interprétations plausibles côte à côte.
Que signifient les types filaires de protobuf ?
Chaque tag de champ encode un type filaire : 0 est un varint (ints, bools, énumérations), 1 est fixed64 (sfixed64, double), 2 est à longueur préfixée (chaînes, octets et messages imbriqués) et 5 est fixed32 (sfixed32, float). Le décodeur étiquette chaque champ avec son type filaire pour que vous puissiez le rattacher à la définition source.
Dois-je coller le protobuf en hex ou en base64 ?
Les deux fonctionnent. Laissez la bascule sur Auto et l’outil détecte le format ; un hex propre (paires de chiffres hex, avec espaces, deux-points ou préfixes 0x optionnels) est lu comme hex et tout le reste est traité comme base64, y compris le base64 URL-safe. Basculez manuellement si vos données sont ambiguës.
Pourquoi un varint est-il affiché comme plusieurs nombres différents ?
Un varint protobuf peut représenter un int64, un uint64 ou un sint64 encodé en zig-zag, et le format filaire n’enregistre pas lequel. Le décodeur les affiche tous, plus une lecture booléenne pour 0 et 1, pour que vous puissiez choisir l’interprétation qui correspond à votre schéma.
La charge utile décodée est-elle téléversée quelque part ?
Non. Le décodage protobuf s’exécute entièrement dans votre navigateur grâce à un analyseur de format filaire en pur JavaScript, les octets que vous collez sont donc traités sur votre appareil et jamais envoyés à un serveur.

Outils associés

Tous les outils ArrayKit