我在Python 3中解码ASP.NET视图状态字符串时遇到问题。
当我尝试使用bash的base64
命令解码字符串时,它会成功解码字符串,并且我能够看到我需要的所有信息(大部分是希伯来语,意思是UTF-8)。视图状态当然只是base64编码而不是加密的。
但是,当我尝试使用Python的base64
库解码字符串然后将字节数组解码为UTF-8字符串时,我收到一条错误消息:
UnicodeDecodeError:'utf-8'编解码器无法解码位置的字节0xff 0:无效的起始字节
我应该提一下,由于字符串是视图状态,前几个字节是二进制数据,“0xff”是有意义的,但是在这些字节之后数据是可读的。
Python 3代码段:
b = "The_ViewState"
print(base64.b64decode(b).decode("utf-8"))
为什么解码在bash中工作而不在Python中?怎么解决这个问题?
答案 0 :(得分:1)
b = "The_ViewState"
print(base64.b64decode(b).decode("utf-8", "ignore"))
添加"忽略" flag导致decode()
丢弃任何无效的字节序列,从而将不相关的字节留在解码的字符串之外。
答案 1 :(得分:-1)