簡體   English   中英

解決b64解碼時的錯誤填充錯誤?

[英]Resolving incorrect padding error while b64 decoding?

函數描述: decodexorbase64(string, key)獲取上一個函數的輸出(異或字符串和base64編碼密鑰),並以b'格式返回原始字符串

我的代碼:

def decodexorbase64(code, keyb64):
    keyoriginal = binascii.a2b_base64(key)
    stroriginal = binascii.a2b_base64(string)
    return (stroriginal, keyoriginal)

問題:

print(decodexorbase64(b'\\x02\\x01\\x04\\x00\\x03\\x00Y^\\x00', b'a2VybWl0\\n'))給出錯誤: binascii.Error: Incorrect padding錯誤: binascii.Error: Incorrect padding

我可以在代碼中寫些什么來避免此錯誤?

您應該對二進制與二進制進行異或運算,而不是對基64與基64進行異或運算,並期望它返回基64。如果您對基64的兩個ASCII編碼進行XOR運算,則可能會得到許多字節設置為接近零(因為前幾位可能匹配),這似乎反映了問題中的codestring

如果需要,請先解碼,然后進行XOR,然后在需要文本作為輸出時再次編碼。


筆記:

  • 我認為您重寫了函數聲明中的參數名稱;
  • 第一個數組( code )似乎是二進制的,而不是基於64
  • 第二個數組具有最終行終止符,該終止符不屬於基礎64字母

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM