【问题标题】:Hashing a solr input field散列 solr 输入字段
【发布时间】:2011-05-06 18:04:21
【问题描述】:

我想帮助搜索我们无法以非散列或加密形式索引或存储的字段。有没有办法告诉 solr 在与索引进行比较之前对特定字段进行哈希(或加密)?

【问题讨论】:

    标签: security solr


    【解决方案1】:

    简而言之,我认为这并不容易,这取决于您需要什么级别的安全性。

    作为一种通用、简单的解决方案,您可以将整个索引存储在加密文件系统中,例如eCryptfsTrueCrypt(见difference between block-level encryption and fs-level encryption

    根据您需要如何在此字段中进行搜索,如果您可以仅对值进行散列处理,那么解决方案将是纯粹的客户端,即在客户端散列值,将其发送到 Solr 并取回结果。

    几年前有一个patch to enable field-level encryption in Lucene,但由于某种原因被拒绝了。不过,也许你可以从那个补丁中借鉴一些想法......

    【讨论】:

    • 哇!为什么不容易?您刚刚在回答中说,您可以在索引之前对字段进行哈希处理,然后在客户端(Javascript)上对搜索值进行哈希处理,以便客户端提交哈希值。似乎很容易。但请确保您的哈希使用盐,并且它与存储在其主数据库中的数据所使用的盐不同。
    • @Michael:客户端通常不是 javascript(即浏览器),而是 Solr 的客户端,即 PHP、Ruby 或您用来与 Solr 对话的任何东西.此外,像这样的散列会阻止多种搜索。
    • 如果 SOLR 客户端是 PHP、Ruby 或其他任何东西,那么进行哈希处理就更容易了。而且我认为散列数据的整个想法是启用比不索引该字段所获得的更多类型的搜索。
    • @Michael:散列 约束 您可以执行的搜索类型。例如,你不能做 ngrams。
    • @Michael:我总是在回答之前阅读问题。 OP 没有提到任何“约束”,他提到了“散列”和“加密”,所以我无法确定他需要哪一个。另外,我确实提供了包括加密和散列在内的解决方案,以防万一,那么我们在这里讨论什么?
    猜你喜欢
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-27
    • 2011-08-28
    • 1970-01-01
    • 2014-04-14
    相关资源
    最近更新 更多