数据库加密字段如何进行模糊查询
·
在金融行业,为了合规要求,或者等保的要求,很多用户的数据都需要加密存储,例如用户的密码,手机号,身份证号等。那么在平常的业务开发中,往往又需要对这些数据进行模糊匹配的需求,这个要怎么实现呢?
参照阿里,拼多多,字节等大厂都是通过将字段分词加密拼成一个大的字符串,然后再通过这个字段来模糊匹配来实现
例如手机号 15234568790,在存储 15234568790加密后的数据的同时,将手机号按照3位一分词,然后进行加密再拼接,这样就是152 523 234 345 456 568 687 879 790 分别将这些进行加密然后再拼接起来存储到一个encrpty_phone字段,然后模糊匹配时按照encrypt_phone like '%152%' 这样查询即可。
这样做的缺点就是对匹配的字符的最短长度有要求,同时需要额外的存储空间。
更多推荐
所有评论(0)