Python Base64 デコードでの不正なパディングの処理
base64.decodestring() を使用して Python で Base64 でエンコードされたデータをデコードすると、次のような問題が発生する可能性があります。 「パディングが正しくありません」エラー。この問題を回避するには、いくつかのアプローチを検討できます。
1.パディングの追加
受け入れられた回答で提案されているように、デコードする前に可能な最大のパディング文字を追加するだけです。 Python 3.x では、base64.b64decode() は余分なパディングを自動的に切り詰めるため、これがシンプルで効果的なソリューションになります。
<code class="python">base64.b64decode(s + b'==')</code>
2.代替デコーダの使用
代替アプローチは、パディングの問題を無視する別のデコーダを使用することです。たとえば、binascii モジュールの decodestring() メソッドでは、不正なパディングが許可されています:
<code class="python">import binascii binascii.decodestring(b64_string)</code>
3。検証の無視
base64.b64decode() でデコードする場合、validate パラメーターを False に設定すると、不正なパディングなどの検証エラーを無視できます。エンコードされたデータの整合性に自信がある場合は、このアプローチをお勧めします。
<code class="python">base64.b64decode(s, validate=False)</code>
4. Openssl の使用
外部ツール openssl は、パディングが正しくない場合でも、base64 データをデコードする信頼性の高い方法を提供します。 enc コマンドは次のように使用できます。
<code class="sh">openssl enc -d -base64 -in b64string -out binary_data</code>
注: 特定の要件とエンコードされたデータの整合性に基づいて、正しいアプローチを検討することが重要です。
以上がPython Base64 デコードでの不正なパディング エラーを処理する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。