我已将加密值(如人名)存储在两列:id、names
这些纯文本名称值使用MCRYPT_RIJNDAEL_128(符合AES)和MCRYPT_MODE_CBC加密,然后逐个插入到名为myTable的mySQl表中。
如果我对“Bob”加密两次或三次或更多次,加密的字符串将总是不同的。
但是现在我有了+5000行;如何在这个表上找到(选择)“Bob”?
最佳答案
当你需要搜索加密数据时,存储这些数据是个问题。。。。
最好的解决方案是,每个加密数据值有两列:
将“Bob”存储在一列中,以便在需要恢复值时可以随后解密
并将原始“Bob”值的强encrypted
存储在另一列中,然后可以使用该列对搜索词的散列进行搜索。无法解密第二列以返回原始值,如果您也对其进行盐化,则需要对该列中的每个值使用相同的盐化