我们使用Spring进行web开发和PostgreSQL作为后端。
在user_table中,我们以加密的格式存储用户移动号码,对于加密和解密值,在业务逻辑层使用AES算法。
我们在前面显示用户列表,并提供了“搜索过滤器”文本框元素,以便用户可以搜索用户名中包含的任何值或user_table行中的城市、州等其他值。
请注意,我们在服务器端使用分页。。
但是,由于数据库中的移动号码存储在加密的format.If中,所以我们不能在数据库中进行搜索,我们使用客户端分页,这样就可以在列表中进行搜索,但是不能将分页从服务器端更改到客户端。
请指导我如何使用加密值的DB中的移动号码搜索用户。
发布于 2020-06-25 13:11:00
对于数据库来说,这是不可能的:如果在数据库中加密了值,数据库就不知道明文值。这有利于安全性,但数据库不能为该值使用索引。
例外情况可能是搜索相等:您可以加密正在查找的值,并使用btree或hash索引搜索数据库中的所有值,其加密形式正是该值。
发布于 2020-06-25 16:32:28
如果您的加密方法使用salt或随机迭代计数,那么您不能在数据库中这样做(只是'AES‘并没有告诉我们这一点)。如果没有,那么使用相同密钥加密的相同值每次都会给出相同的答案。然后,您应该能够对客户端上的查询项进行加密,并将其发送到数据库以搜索相等性。
https://stackoverflow.com/questions/62575755
复制相似问题