在Python中搜索base64解码的二进制数据

时间:2015-05-18 16:56:35

标签: python base64

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

我用

轻松解码它
b64 = base64.b64decode(row[2])
然而,我现在需要在解码数据中搜索各种文本字符串并获得所述字符串的偏移量。解码数据是二进制的,即它包含许多非printables,NULL等。

我试过了

ofs = b64.find('content')

但收到错误TypeError: Type str doesn't support the buffer API

表明我显然正在咆哮错误的树

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

1 个答案:

答案 0 :(得分:4)

搜索bytes对象而不是str

ofs = b64.find(b'content')

或稍微不那么硬编码的方式

search = 'content'
ofs = b64.find(bytes(search))

编号为bytesofs,您应该在其中查找相应的对象;)。


从文档中,bytes作为函数使用时会返回一个新的bytes对象:

  

bytes([source [,encoding [,errors]]])

     

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