簡體   English   中英

base64解碼和字節協商字符串

[英]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.

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