让我们承认这种情况:我有一个涉及关键数据的项目。服务器端由Laravel / Symfony管理,以检索,处理和存储这些数据。
数据通过API发送到服务器,它们经过加密并最终存储在数据库中。
我的问题是:如果数据库中的数据已加密,我是否仍可以使用WHERE子句检索这些数据?我正在考虑“在飞行中”解密之类的方法,但在Google上这些术语我一无所获。加密数据库中的数据以改善数据保护的最佳方法是什么?
诀窍是为encrypted值建立索引,但这确实限制了您可以搜索的内容。您可以通过预先对数据进行规范化来改善一些情况,例如,在加密之前强制将其小写,以使匹配更可能。
但是,这都是学术性的,因为与其重新发明(可能是复杂而困难的)轮子,最好的方法是使用为您服务的图书馆,而您需要的图书馆是[C0 ](作者Scott Arciszewski)。