Python Base64 デコードでの不正なパディングの処理
base64.decodestring() を使用して Python で Base64 でエンコードされたデータをデコードするときに、 「パディングが正しくありません」エラー。この問題を回避するには、いくつかのアプローチを検討できます。
1.パディングの追加
受け入れられた回答で提案されているように、デコードする前に可能な最大のパディング文字を追加するだけです。 Python 3.x では、base64.b64decode() は余分なパディングを自動的に切り詰めるため、これがシンプルで効果的なソリューションになります。
base64.b64decode(s b'==')
2.代替デコーダの使用
別のアプローチは、パディングの問題を無視する別のデコーダを使用することです。たとえば、binascii モジュールの decodestring() メソッドでは、不正なパディングが許可されます:
import binascii
binascii.decodestring(b64_string)
3.検証の無視
base64.b64decode() でデコードする場合、validate パラメーターを False に設定すると、不正なパディングなどの検証エラーを無視できます。エンコードされたデータの整合性に自信がある場合は、このアプローチをお勧めします。
base64.b64decode(s, validate=False)
4. Openssl の使用
外部ツール openssl は、パディングが正しくない場合でも、base64 データをデコードする信頼性の高い方法を提供します。 enc コマンドは次のように使用できます。
openssl enc -d -base64 -in b64string -out binary_data
注: 正しい値を考慮することが重要です。特定の要件とエンコードされたデータの整合性に基づいたアプローチ。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3