是否可以读取 Sphinx 二进制索引?

Is it possible to read Sphinx binary index?

我已经通过 ECB 和 base64 加密了 mysql table。通过大数据搜索变得过热,所以我想到了狮身人面像。我可以在其上构建索引并将所有查找查询传递给 Sphinx,但是读取(窃取和读取)Sphinx 索引是真实的吗?

嗯,sphinx 是开源的,所以索引格式很容易获得。事实上,有一个 indextool 二进制文件,它可以向您显示文件中的大部分数据。 (但当然,如果有人可以获得索引文件,他们可以将它们加载到另一个 sphinx 副本中,然后 'read' 那样

...但是 sphinx 索引有些有损。它们不存储正在编制索引的 raw 文本字段。它被转换为倒排索引。

然后有两种类型的索引....

使用dict=keywords索引,关键字列表存储在索引中(经过charset_table转换) 因此,虽然可以重建文档文本的基础,但不能 精确 复制,标点符号等都会丢失。

而如果您使用 dict=crc 索引,则实际单词不会存储在索引中 - 只有单词的 crc32/fnv64 哈希值。因此,重建原始文本会困难得多。

... 所以虽然它不是真正的加密,但散列过程使得恢复数据变得困难(与密码通常存储散列的方式相同)

(但是,属性不同,它们按原样存储在索引中。它们很容易提取)