在Python Base64解碼中處理不正確的填充
在Python中使用64.decodestring()解碼basebase64編碼的資料時,你可能會遇到“填充不正確”錯誤。要繞過這個問題,您可以考慮幾種方法。
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