[英]base64 decode and byte negotiate string
我有base64編碼的字符串sZCLmg==
,這是Note
。 我正在嘗試使用base64對其進行解碼,然后使用字節協商來獲取字符串Note
。
import base64
encoded = 'sZCLmg==' #sZCLmg== Note
data = base64.b64decode(encoded)
print data
mylist = []
mylist.append(data)
#print mylist[0][0]
bytes = mylist[0][0]
print (bytes ^ 0xFF)
但是我收到錯誤消息:ValueError:以10為基數的int()的無效文字:'\\ xb1'任何想法請問我在做錯什么來獲取原始字符串Note
?
在Python2中,迭代文字'\\xb1\\x90\\x8b\\x9a'
會產生字符串,而不是字節。
一種解決方案是使用bytearray 。
>>> ba = bytearray(data)
>>> ''.join(chr(x ^ 0xFF) for x in ba)
'Note'
正如@wovano在注釋中指出的那樣,也可以不使用字節數組來執行此操作,如下所示:
''.join(chr(ord(x) ^ 0xFF) for x in data)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.