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