是否可以读取 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 哈希值。因此,重建原始文本会困难得多。
... 所以虽然它不是真正的加密,但散列过程使得恢复数据变得困难(与密码通常存储散列的方式相同)
(但是,属性不同,它们按原样存储在索引中。它们很容易提取)
我已经通过 ECB 和 base64 加密了 mysql table。通过大数据搜索变得过热,所以我想到了狮身人面像。我可以在其上构建索引并将所有查找查询传递给 Sphinx,但是读取(窃取和读取)Sphinx 索引是真实的吗?
嗯,sphinx 是开源的,所以索引格式很容易获得。事实上,有一个 indextool
二进制文件,它可以向您显示文件中的大部分数据。 (但当然,如果有人可以获得索引文件,他们可以将它们加载到另一个 sphinx 副本中,然后 'read' 那样)
...但是 sphinx 索引有些有损。它们不存储正在编制索引的 raw 文本字段。它被转换为倒排索引。
然后有两种类型的索引....
使用dict=keywords
索引,关键字列表存储在索引中(经过charset_table转换)
因此,虽然可以重建文档文本的基础,但不能 精确 复制,标点符号等都会丢失。
而如果您使用 dict=crc
索引,则实际单词不会存储在索引中 - 只有单词的 crc32/fnv64 哈希值。因此,重建原始文本会困难得多。
... 所以虽然它不是真正的加密,但散列过程使得恢复数据变得困难(与密码通常存储散列的方式相同)
(但是,属性不同,它们按原样存储在索引中。它们很容易提取)