在 Python 中搜索 base64 解码的二进制数据以获取文本

Pau*_*son 3 python base64

我在 base64 编码的数据库中有一些数据

我很容易解码它

b64 = base64.b64decode(row[2])
Run Code Online (Sandbox Code Playgroud)

但是我现在需要搜索各种文本字符串的解码数据并获取所述字符串的偏移量。解码后的数据是二进制的,即它包含许多不可打印的、NULL 等。

我试过了

ofs = b64.find('content')
Run Code Online (Sandbox Code Playgroud)

但得到一个错误 TypeError: Type str doesn't support the buffer API

这表明我显然在错误的树上吠叫

我是 Python 的新手,但出于各种原因想尝试使用它获得解决方案 - 请问有什么想法吗?

raf*_*elc 5

搜索一个bytes对象而不是一个str

ofs = b64.find(b'content')
Run Code Online (Sandbox Code Playgroud)

或者少一点硬编码的方式

search = 'content'
ofs = b64.find(bytes(search))
Run Code Online (Sandbox Code Playgroud)

ofs编码为一样bytes,您应该在其中查找相应的对象;)。



从文档中,bytes当用作函数返回一个新bytes对象时:

字节([源[,编码[,错误]]])

返回一个新的“bytes”对象,它是 0 <= x < 256 范围内的不可变整数序列。 bytes 是 bytearray 的不可变版本——它具有相同的非变异方法和相同的索引和切片行为。