Gestion du remplissage incorrect dans le décodage Python Base64
Lors du décodage de données codées en base64 en Python avec base64.decodestring(), vous pouvez rencontrer un Erreur « Remplissage incorrect ». Pour contourner ce problème, vous pouvez envisager plusieurs approches.
1. Ajout de remplissage
Comme suggéré dans la réponse acceptée, vous pouvez simplement ajouter le maximum de caractères de remplissage possibles avant le décodage. Dans Python 3.x, base64.b64decode() tronquera automatiquement tout remplissage supplémentaire, ce qui en fait une solution simple et efficace.
<code class="python">base64.b64decode(s + b'==')</code>
2. Utilisation d'un décodeur alternatif
Une approche alternative consiste à utiliser un décodeur différent qui ignore les problèmes de remplissage. Par exemple, la méthode decodestring() du module binascii permet un remplissage incorrect :
<code class="python">import binascii binascii.decodestring(b64_string)</code>
3. Ignorer la validation
Lors du décodage avec base64.b64decode(), le paramètre validate peut être défini sur False pour ignorer les erreurs de validation, y compris un remplissage incorrect. Cette approche est recommandée si vous êtes sûr de l'intégrité des données codées.
<code class="python">base64.b64decode(s, validate=False)</code>
4. Utilisation d'Openssl
L'outil externe openssl fournit un moyen fiable de décoder les données base64, même avec un remplissage incorrect. Vous pouvez utiliser la commande enc comme suit :
<code class="sh">openssl enc -d -base64 -in b64string -out binary_data</code>
Remarque : Il est important de considérer l'approche correcte en fonction des exigences spécifiques et de l'intégrité des données codées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!