Comment ça marche
Aucun envoi, aucun compte, aucun suivi de vos données d'outil. Tout s'exécute directement dans votre navigateur – voici ce que cela signifie concrètement.
Comment ça marche
Flux de données
Exécution locale
Lorsque vous saisissez des données dans l'un de nos outils, elles sont lues directement dans la mémoire de votre navigateur. Tout le traitement utilise l'API Web Crypto (pour les opérations cryptographiques) ou JavaScript natif. Les résultats s'affichent dans votre fenêtre de navigateur. À aucun moment vos données ne quittent votre appareil ni ne transitent par le réseau.
Ce qui quitte votre navigateur
Après le chargement initial de la page, rien de ce que vous saisissez, collez ou téléversez n'est envoyé où que ce soit. Le code est entièrement statique. Vous pouvez le vérifier vous-même : ouvrez les outils de développement de votre navigateur (F12), passez à l'onglet Réseau et utilisez n'importe quel outil. Dans cette liste, vous verrez nos propres fichiers — au premier usage, le testeur d'expressions régulières charge son moteur et le compresseur d'images le code avec lequel il compresse — ainsi que le ping de mesure sans cookie de Cloudflare, injecté par le CDN à chaque chargement de page. Ce que vous ne verrez pas, c'est une requête contenant vos saisies.
Aucun état persistant
Nous n'utilisons ni cookies ni IndexedDB, et nous ne stockons jamais vos données d'outil. Trois éléments résident néanmoins dans votre navigateur, et aucun ne contient vos saisies, fichiers, clés ou résultats : deux préférences locales (votre choix de thème sous "theme" et le masquage de la bannière d'installation sous "zeyrovault-pwa-install-dismissed", écrites uniquement lors d'une action de votre part), une entrée sessionStorage liée à la session, listant les outils récemment ouverts (noms uniquement, effacée à la fermeture de l'onglet), et le cache hors ligne du service worker pour les fichiers de l'application et les pages que vous avez visitées. Tout ce que vous collez, chiffrez, hachez ou compressez reste en mémoire et est libéré lorsque vous quittez la page. Rien de tout cela n'est stocké ni envoyé.
Implémentation technique
Nos outils sont construits comme des fichiers statiques HTML, CSS et JavaScript. Les opérations cryptographiques utilisent l'API Web Crypto native du navigateur, implémentée en code C++ hautement optimisé au sein du moteur du navigateur. Cela offre à la fois la sécurité (les algorithmes viennent du navigateur lui-même) et la performance (exécution en code natif). La seule exception est MD5 : l'API Web Crypto ne le propose pas, une petite implémentation JavaScript embarquée s'en charge donc.
Un chiffrement, étape par étape
- La page transmet le mot de passe et les octets au worker. Rien n'est lu depuis le stockage : l'entrée est déjà en mémoire.
- crypto.getRandomValues() remplit un sel de 16 octets et un IV de 12 octets. Les deux sont neufs pour cette opération et l'IV n'est jamais réutilisé.
- subtle.importKey('raw', mot de passe, 'PBKDF2') puis deriveKey (PBKDF2-SHA-256, 100 000 itérations) produisent une clé AES-256-GCM non exportable.
- subtle.encrypt({name: 'AES-GCM', iv}, clé, octets) renvoie le chiffré avec l'étiquette de 16 octets ajoutée.
- Le résultat est empaqueté sel | IV | chiffré+étiquette. Le mode texte l'encode en base64 ou hexadécimal, le mode fichier écrit le conteneur ZVE1 à la place.
- Le déchiffrement inverse la chaîne : séparer l'en-tête de 28 octets, redériver avec le même sel et le même nombre d'itérations, puis déchiffrer. Un mauvais mot de passe ou un octet modifié échoue au contrôle de l'étiquette.
En cas d'échec : ce que dit le message
- Mot de passe vide : refusé avant tout appel cryptographique ("Password is required").
- Entrée de moins de 28 octets au déchiffrement : "Invalid encrypted data format". Ce n'est pas un problème de mot de passe.
- Mauvais mot de passe ou chiffré modifié : "Invalid password or corrupted data". GCM ne peut pas dire lequel des deux.
- Navigateur sans Web Crypto (pas de HTTPS ou moteur ancien) : l'outil refuse de s'exécuter au lieu de basculer sur un chemin plus faible.
Vérifiez par vous-même
Inutile de nous croire sur parole. Tout est vérifiable :
- 1Ouvrez les outils de développement (F12) et consultez l'onglet Réseau — vous verrez nos propres fichiers et le ping de mesure sans cookie de Cloudflare, mais aucune requête contenant vos saisies
- 2Vérifiez nos affirmations dans DevTools
- 3Rechargez une page déjà visitée sans réseau et voyez-la revenir du cache hors ligne
- 4Utilisez un analyseur de paquets pour confirmer que rien de ce que vous saisissez ou collez n'est transmis
- 5Inspectez le code dans le panneau Sources de DevTools
- 6Vérifiez que la page est servie en HTTPS avec un certificat valide
- 7Vérifiez l'utilisation mémoire du navigateur pour confirmer l'absence de fuites de données
Pourquoi c'est important
Les outils en ligne classiques envoient vos données à leurs serveurs pour traitement. Même s'ils prétendent les supprimer immédiatement, vous n'avez aucun moyen de le vérifier. Avec notre approche côté client, vos données ne quittent jamais votre appareil, ce qui vous donne un contrôle total sur vos données et une confidentialité qui ne dépend d'aucun tiers. C'est particulièrement important pour les données sensibles comme les mots de passe, les clés privées et les informations personnelles.
Navigateur ou serveur
- Vos données
- Comment vous les utilisez
- Vos habitudes
- Accéder à vos données
- Les partager avec des tiers
- Les perdre lors d'une fuite
- Le contenu de vos données
- Vos mots de passe
- Comment vous les utilisez
- Accéder à vos données
- Partager ce qu'il ne possède pas
- Perdre ce qu'il ne détient pas