我有一个用aes 256 gcm加密的敏感信息数据库。但我必须在将数据发送到前端之前过滤它。目前,我获取所有数据并在应用程序中进行过滤。现在工作得很好。但我认为,这可能是一个问题,在未来,当数据库变得更大,我目前的方法来解决这个问题将是缓慢的,不是最佳的。但是我不知道如何在加密的行中搜索这些行在应用程序中是加密的
的例子:
id | email(未加密) | firstname(加密) | 1 | qwerty@qwerty.com | DPTR0zNqreWoZUwajRcJJtMlgji7TrSuzcuPbDfIsqvc6g = | 2
---|---|---|
qwerty@qwerty1.com | DCAvCh1JewOIJl3EQprmgnfy9VT5r6BGFGuyqkBpicNM |
SELECT * FROM tablename WHERE AES_DECRYPT(firstname,[KEY])='密钥%'
这应该可以做到,它解密每个名称并将其与给定的字符串进行比较。请记住,您是通过连接发送加密密钥,如果sql服务器与客户端在同一台机器上,则是安全的,否则您可以使用f.e. SSL/TLS
。