Comment décoder du Base64 en fichier ZIP
- Collez le Base64 dans Base64 ou data URI, ou ouvrez un fichier texte qui le contient avec Ouvrir un fichier .txt.
- Le résumé indique le nombre de fichiers et de dossiers, la taille décompressée avec le gain dû à la compression, le commentaire de l’archive s’il y en a un, et si l’archive utilise ZIP64 ou contient des entrées protégées.
- Le tableau liste chaque entrée avec Taille, taille Compressé et date Modifié, plus les boutons Voir et Enregistrer.
- Appuyez sur Télécharger le fichier pour enregistrer l’archive elle-même.
Jusqu’à 500 entrées sont listées ; pour les archives plus grandes, une ligne indique combien il en reste. Rien n’est décompressé tant que vous n’appuyez pas sur un bouton, et tout se passe dans votre navigateur. La Content Security Policy de la page interdit les requêtes réseau autres que le comptage des pages vues de Cloudflare : l’archive ne peut donc pas être envoyée.
Ouvrir un seul fichier de l’archive
Voir décompresse une entrée et la prévisualise sous le tableau : images, PDF, audio et vidéo, texte et JSON, et même un ZIP dans le ZIP, jusqu’à trois niveaux. Enregistrer télécharge ce seul fichier sous son propre nom, sans le chemin du dossier. Chaque entrée extraite est vérifiée par rapport au CRC-32 stocké dans l’archive, et un écart est signalé par « Somme de contrôle incorrecte : cette entrée est endommagée. »
Le listage s’en sort avec des archives sur lesquelles les lecteurs ordinaires butent :
- Les archives ZIP64, utilisées pour les fichiers de plus de 4 Go ou plus de 65 535 entrées.
- Les noms de fichiers en UTF-8, dans la page de code DOS 437 des anciens outils Windows, ou avec un champ de chemin Unicode Info-ZIP.
- Les archives auto-extractibles et autres ZIP précédés de données supplémentaires.
- Les archives tronquées : quand le répertoire de fin manque, l’outil récupère les entrées depuis les en-têtes placés devant chaque fichier et le signale : « Le répertoire central est absent (les données semblent tronquées). » Les entrées dont les données ont été coupées indiquent qu’elles sont manquantes.
Les horodatages ZIP classiques n’ont pas de fuseau horaire : Modifié affiche donc l’heure de l’horloge de la machine qui a créé l’archive. Quand une entrée porte aussi un horodatage Unix dans un champ supplémentaire, c’est celui-ci qui est utilisé, affiché dans votre heure locale.
Ce qui peut être extrait
| Entrée | Listée | Voir et Enregistrer |
|---|---|---|
| Stockée (méthode 0) | Oui | Oui |
| Deflate (méthode 8) | Oui | Oui |
| Deflate64, BZIP2, LZMA, Zstandard, XZ, PPMd | Oui, avec la méthode entre crochets | Non : « La méthode de compression BZIP2 n’est pas prise en charge dans le navigateur. » |
| Chiffrée, ZipCrypto ou AES | Oui, marquée [protected] | Non : « Cette entrée est protégée par mot de passe : elle peut être listée, pas extraite. » |
| Dossiers | Oui | Non |
Les archives créées par Windows, macOS et la commande zip utilisent Deflate. Les autres méthodes viennent surtout de 7-Zip ou de WinZip, quand quelqu’un les a choisies pour un meilleur taux de compression.
La protection contre les zip bombs
La compression peut transformer un petit téléchargement en fichier énorme. 100 Mio de zéros se compressent en environ 100 Ko, et les archives imbriquées ou forgées poussent le rapport bien plus loin. Avant de décompresser une entrée, l’outil vérifie la taille déclarée dans l’archive et refuse tout ce qui dépasse 64 Mo avec « Arrêt à 64.0 MB décompressés : trop volumineux pour être décompressé dans le navigateur (zip bomb possible). Téléchargez plutôt l’archive. » Pendant la décompression, il s’arrête aussi à la taille déclarée plus 1 Ko : une entrée qui ment sur sa taille ne peut pas dépasser ce qu’elle a annoncé.
La ligne de résumé affiche quand même le total déclaré, ce qui constitue en soi un avertissement utile : une archive de quelques centaines de kilo-octets qui se décompresse en gigaoctets mérite la méfiance avant d’être extraite avec quelque outil que ce soit.
Est-ce vraiment un ZIP ?
Les fichiers ZIP commencent par PK et deux octets, soit UEsDB en Base64 ; une archive vide commence par UEsFBg. Beaucoup de formats sont des archives ZIP sous un autre nom, et l’outil indique lequel : DOCX, XLSX, PPTX, EPUB, ODT, JAR, APK. Tous se listent et s’extraient ici ; les documents Office ont en plus un aperçu du texte sur Base64 en Word et Base64 en Excel.
Les autres formats d’archive ne sont pas du ZIP. L’outil décompresse le gzip, mais pas le 7-Zip ni le RAR :
| Le Base64 commence par | Format | Ce qui se passe |
|---|---|---|
H4sI | gzip (.gz, .tar.gz) | Décompressé et prévisualisé, avec Télécharger en .gz |
N3q8ryc | 7-Zip | « Cela ne ressemble pas à un fichier ZIP (détecté : 7-Zip) » |
UmFyIRo | RAR | « Cela ne ressemble pas à un fichier ZIP (détecté : RAR) » |
Pour 7-Zip et RAR, Extension reste sur zip. Saisissez 7z ou rar dans ce champ avant de télécharger, sinon votre système essaiera de l’ouvrir comme un ZIP et échouera.
Décompresser un ZIP Base64 en Python
zipfile lit directement les octets décodés : rien n’a besoin d’être écrit sur le disque au préalable.
import base64, io, zipfile
with open("archive.b64") as f:
data = base64.b64decode(f.read())
with zipfile.ZipFile(io.BytesIO(data)) as z:
for info in z.infolist():
print(f"{info.filename:20} {info.file_size:>8} method={info.compress_type}")
z.extract("docs/readme.txt", "out")
La colonne method affiche les mêmes nombres que le tableau ci-dessus : 0 pour stocké, 8 pour Deflate, 12 pour BZIP2, 14 pour LZMA. Python extrait les quatre. Depuis un shell, base64 -d archive.b64 > archive.zip && unzip -l archive.zip liste le contenu. Pour produire une telle chaîne à partir de fichiers, voir ZIP en Base64 et Base64 en Python.
FAQ
Comment convertir du Base64 en fichier ZIP ?
Collez la chaîne ci-dessus et appuyez sur Télécharger le fichier pour enregistrer decoded.zip. Pour n’en extraire qu’un seul fichier, appuyez sur Enregistrer à côté de celui-ci dans la liste.
Puis-je ouvrir ici un ZIP protégé par mot de passe ?
Les entrées sont listées avec la mention [protected], mais elles ne peuvent pas être extraites dans le navigateur. Téléchargez l’archive et ouvrez-la avec 7-Zip, unzip ou l’outil d’archives de votre système, qui vous demandera le mot de passe.
Pourquoi une entrée indique-t-elle que sa méthode de compression n'est pas prise en charge ?
Les navigateurs ne savent décompresser que Deflate, la méthode qu’utilisent presque tous les ZIP. Les entrées compressées en BZIP2, LZMA, Deflate64, Zstandard ou PPMd, généralement par 7-Zip ou WinZip, sont listées mais doivent être extraites avec un outil de bureau ou le module zipfile de Python, qui lit BZIP2 et LZMA.
Mon Base64 commence par H4sI. Est-ce un ZIP ?
Non, c’est du gzip. L’outil indique que cela ressemble à GZIP, le décompresse et montre son contenu ; un .tar.gz contient une archive TAR. Télécharger en .gz l’enregistre avec la bonne extension.