Décodeur Hex NDEF : Comprendre Chaque Octet de Votre Payload de Tag NFC
1Qu'est-ce que NDEF et Pourquoi Avez-vous Besoin d'un Décodeur ?
NDEF — NFC Data Exchange Format — est le format de données binaires défini par le NFC Forum pour stocker et échanger des informations entre appareils NFC et tags. C'est le langage universel parlé par les tags NFC, les smartphones et les lecteurs NFC dans le monde entier. Comprendre NDEF est essentiel pour tout développeur, intégrateur ou utilisateur technique travaillant avec la technologie NFC. Lorsque vous lisez un tag NFC avec une application comme NFC Tools, l'application vous montre le contenu lisible par l'humain (une URL, un texte, une vCard). Mais derrière cela, le tag stocke des données binaires brutes — une séquence d'octets avec une structure très spécifique définie par la spécification NDEF. Cet outil vous permet d'aller dans les coulisses : collez la représentation hexadécimale brute de n'importe quel message NDEF et voyez exactement comment il est structuré, enregistrement par enregistrement, champ par champ. Cela est inestimable pour déboguer les intégrations NFC. Peut-être qu'un tag n'est pas lu correctement sur un appareil spécifique. Peut-être voulez-vous vérifier qu'un tag programmé contient exactement le bon payload. Peut-être rétroingénériez-vous un tag NFC propriétaire pour comprendre sa structure. Ou peut-être apprenez-vous le format NDEF et voulez voir comment différents types d'enregistrements sont encodés en binaire. Ce décodeur fait tout cela — instantanément, gratuitement, sans rien installer.
2Fonctionnement du Décodeur NDEF : Analyse de la Structure Binaire
Le décodeur traite l'entrée hexadécimale en analysant la structure du message NDEF octet par octet, conformément à la spécification technique NDEF du NFC Forum. Étape 1 — Analyse des octets : La chaîne hex est convertie en tableau d'octets. Chaque paire de caractères hex devient un octet (ex. « d1 » = 0xD1 = 209 en décimal). Étape 2 — Analyse de l'en-tête d'enregistrement : Le premier octet de chaque enregistrement est l'octet d'en-tête. Ses bits encodent plusieurs indicateurs : MB (bit 7) = Message Begin — activé sur le premier enregistrement. ME (bit 6) = Message End — activé sur le dernier enregistrement. CF (bit 5) = Chunk Flag — pour les enregistrements fragmentés. SR (bit 4) = Short Record — si activé, la longueur du payload est 1 octet ; sinon, 4 octets. IL (bit 3) = ID Length présent. TNF (bits 2-0) = Type Name Format, valeurs 0-7 définissant la famille de type d'enregistrement. Étape 3 — Extraction des champs : Après l'en-tête, le décodeur lit la longueur de type, la longueur de payload (1 ou 4 octets selon l'indicateur SR), et la longueur d'ID optionnelle. Il lit ensuite le champ de type, le champ d'ID optionnel, et finalement le payload. Étape 4 — Interprétation du type : Selon le TNF et le type, le décodeur interprète le payload. Pour TNF=1 (Well-Known) avec type « U », il décode l'URI. Pour type « T », il décode le code de langue et le texte. Pour TNF=2 (MIME), il affiche le type MIME.
3Quand Avez-vous Besoin d'un Décodeur NDEF ? Cas d'Usage Pratiques
Les développeurs et utilisateurs NFC techniques recourent à un décodeur NDEF dans de nombreuses situations. Débogage de la programmation de tags NFC : Vous avez programmé un tag avec votre application mais il ne se comporte pas comme prévu sur certains appareils. Copiez le dump hex depuis NFC Tools (Android) en utilisant la fonction « Partager les données brutes », collez-le ici, et voyez immédiatement si la structure NDEF est correcte. Les problèmes courants incluent des valeurs TNF incorrectes, des octets de longueur de payload erronés, ou des indicateurs Message Begin/End manquants. Vérification du contenu des tags avant déploiement : Avant d'expédier 10 000 tags NFC pré-programmés à un client, vérifiez que la structure du payload correspond à la spécification. C'est essentiel dans les déploiements NFC industriels où les tags sont lus par des lecteurs matériels personnalisés pouvant être stricts sur la conformité du format. Rétroingénierie de tags propriétaires : Certains appareils utilisent des tags NFC avec un contenu non standard ou propriétaire. Le décodeur vous montre les octets bruts, le TNF, le type et le payload de chaque enregistrement, vous aidant à comprendre le format même quand le fournisseur ne fournit pas de documentation. Apprentissage de la structure NDEF : Les étudiants et développeurs apprenant la technologie NFC peuvent utiliser cet outil pour étudier comment différents types d'enregistrements sont encodés. Générez un payload URL avec le Générateur d'URL, puis collez-le ici pour voir exactement comment les octets sont structurés. Test d'applications de lecture NFC : Les ingénieurs QA testant des applications de lecture NFC peuvent utiliser des payloads hex NDEF connus comme vecteurs de test, vérifiant que leur application analyse correctement chaque type d'enregistrement.
4Analyse Approfondie du Format NDEF : Valeurs TNF et Types d'Enregistrements
Le champ Type Name Format (TNF) est la clé pour comprendre quel type de données contient un enregistrement NDEF. Il existe 8 valeurs TNF possibles. TNF 0x00 — Empty : Pas de type, pas de payload. Utilisé comme espace réservé dans les enregistrements fragmentés ou les messages NDEF vides. TNF 0x01 — Well-Known : Le type le plus courant. Utilise des noms de type courts définis par les spécifications RTD du NFC Forum : « U » pour URI, « T » pour Text, « Sp » pour SmartPoster, « act » pour Action. TNF 0x02 — MIME Media : Le champ type contient une chaîne de type MIME (ex. « text/vcard », « application/vnd.wfa.wsc »). Utilisé pour les vCards, les identifiants WiFi, et toute donnée avec un type MIME standard. TNF 0x03 — Absolute URI : Le champ type contient une chaîne URI complète identifiant le type d'enregistrement. Utilisé dans certaines applications NFC d'entreprise. TNF 0x04 — External Type : Le type est une chaîne définie par l'utilisateur au format « domaine.com:nomtype ». Utilisé pour les types d'enregistrements spécifiques à une application. TNF 0x05 — Unknown : Le type est inconnu ou non applicable. La longueur de type doit être 0. TNF 0x06 — Unchanged : Utilisé uniquement dans les enregistrements fragmentés (CF=1) pour indiquer que les enregistrements de continuation ont le même type que le premier fragment. TNF 0x07 — Reserved : Réservé par le NFC Forum pour usage futur.
5Comment Obtenir un Dump Hex NDEF depuis Vos Tags NFC
Pour utiliser le décodeur NDEF, vous devez d'abord obtenir le payload hex brut d'un tag NFC physique. Voici les méthodes les plus courantes. Avec NFC Tools (Android et iOS) : Ouvrez NFC Tools, allez dans l'onglet « Lire », approchez votre téléphone du tag NFC. Après la lecture, appuyez sur l'enregistrement à inspecter, puis cherchez l'option « Partager » ou « Données brutes ». Avec NFC TagInfo by NXP (Android) : C'est l'application de diagnostic NFC la plus détaillée disponible. Après avoir scanné un tag, elle affiche le message NDEF complet en hexadécimal sous l'onglet NDEF. Elle montre également le type de puce, la carte mémoire, et les secteurs verrouillés ou protégés. Avec l'API NFC Android : Si vous développez une application Android, lisez le contenu NDEF du tag en utilisant la méthode NdefMessage.toByteArray(), puis convertissez en hex. Enregistrez le résultat pour le débogage. Avec l'API Web NFC : Dans Chrome pour Android, utilisez l'API NDEFReader. Le tableau message.records vous donne chaque enregistrement, et vous pouvez accéder à record.data comme ArrayBuffer pour extraire les octets bruts. Avec un lecteur NFC USB : Branchez un lecteur NFC USB (comme ACR122U) sur un ordinateur, utilisez le SDK du lecteur ou des outils comme nfcpy (Python) ou libnfc pour dumper le contenu du tag, puis collez l'hex ici pour analyse. Exemples de payloads NDEF pour les tests : Enregistrement URI pour exemple.com : d1010e5503exemple.com (en hex ASCII). Enregistrement Text « Hello » en anglais : d1010b5402656e48656c6c6f
FAQQuestions Fréquentes
Que signifie TNF dans un enregistrement NDEF ?
TNF signifie Type Name Format. C'est un champ de 3 bits dans l'en-tête de l'enregistrement NDEF qui indique au lecteur comment interpréter le champ « type » de l'enregistrement. Les valeurs les plus courantes sont : 0x01 (Well-Known, utilisé pour les types NFC Forum standard comme URI et Text), 0x02 (MIME Media Type, utilisé pour les vCards et le WiFi), et 0x04 (External Type, utilisé pour les données spécifiques à une application). La valeur TNF détermine comment la pile NFC du smartphone analysera et distribuera l'enregistrement à l'application appropriée.
Pourquoi le payload décodé ressemble-t-il à des caractères aléatoires ?
Si la représentation ASCII du payload affiche des caractères non imprimables ou des symboles, cela signifie que le payload contient des données binaires qui ne sont pas du texte brut — c'est normal pour de nombreux types d'enregistrements NDEF. Par exemple, les données vCard utilisent de l'ASCII imprimable, mais certains types d'enregistrements propriétaires stockent des données encodées en binaire. La vue hexadécimale est toujours précise quel que soit le contenu. Les points (.) dans la vue ASCII représentent les octets inférieurs à 32 ou supérieurs à 126 qui ne sont pas des caractères ASCII imprimables.
Puis-je décoder des données NDEF d'un tag Mifare Classic ?
Les tags Mifare Classic utilisent une organisation mémoire différente des tags natifs NDEF comme le NTAG21x. Le Mifare Classic peut stocker des données NDEF, mais il doit d'abord être lu en utilisant un outil qui gère l'authentification Mifare Classic (Clé A/B). Une fois que vous avez les octets de données bruts de la zone NDEF d'un tag Mifare Classic (typiquement à partir du bloc 4, secteur 1 après le MAD), vous pouvez coller ces octets ici. Pour une analyse complète du Mifare Classic, utilisez notre outil Carte Mémoire Mifare.