我已经达到一个客户要求,我必须对大型数据库中的字段first_name,last_name,phone_number,username进行加密,以确保机密性。
但是,如果我使用PHP函数加密这些字段,则无法对这些数据执行SQL选择(LIKE , =
)搜索。是否可以使用AES_ENCRYPT
而不会造成很大的性能损失,或者可以通过其他任何快速的方法来实现这一目标?
答案 0 :(得分:0)
您可能对CipherSweet感兴趣,该authenticated encryption在PHP中提供安全的libsodium,密钥分离和加密搜索(用于SQL数据库)。
CipherSweet不使用MySQL的AES_ENCRYPT()
函数。实际上,如果加密数据的目的是将其从数据库服务器中隐藏起来作为深度防御策略,那么您永远不需要依靠MySQL的AES_ENCRYPT()
函数。
相反,CipherSweet开箱即用地支持两个后端:
使用CipherSweet,您将无法获得LIKE
或正则表达式支持。相反,它使用称为conditionalPanel()的策略(类似于通常使用LIKE
运算符的方式。)