searchNode.js中的encryption文本

有没有什么最好的方式来使用Node js来searchDB中的encryption数据?

我将encryption数据存储在数据库中。 如何通过代码searchencryption的文本?

例:

$ node encrypt.js 123 'hello my friend' 90cbf635540412a202eb46dada1fcf $ node encrypt.js 123 'hello' 90cbf63554 $ node encrypt.js 123 ' my ' d8c3e379 $ node encrypt.js 123 'friend' 9edcf33c5540 

您无法searchencryption的文本 – 这将首先破坏encryption的目的。 正如你注意到的那样,string的不同部分将被encryption为完全不同的值 – 这是通过devise,或者它会使你的encryption更容易破解。

可以做的就是散列你想要search的文本片段,并将这些散列片段存储在不同的表格引用中。

parent (encryption的string)

 id string 1 xyzxyzxyzxyzxyzxyz (encrypted 'hello my friend') 

然后你会将string分解成word组件。

 var words = string.split(' '); // words is an array of ['hello', 'my', 'friend'] 

迭代该数组并计算每个words哈希值,然后将这些哈希值插入到“索引”表中。

words (索引字哈希encryption父)

 id parent_id hash 1 1 abc (hash of "hello") 2 1 def (hash of "my") 3 1 ghi (hash of "friend") 

此时,您将能够将search查询组合成不同的单词,计算其哈希值,然后返回任何匹配的parent_id 。 请注意,这将只适用于完整的单词 – 任何变化都会改变计算出来的散列,因此您可能希望强制所有内容都为小写。

假设您正在search“hello”,您将计算其“abc”的散列,然后运行以下SQL查询。

 SELECT p.id, p.string FROM parent p JOIN words w ON p.id = w.parent_id WHERE w.hash IN ('abc') GROUP BY p.id