在金融行业,为了合规要求,或者等保的要求,很多用户的数据都需要加密存储,例如用户的密码,手机号,身份证号等。那么在平常的业务开发中,往往又需要对这些数据进行模糊匹配的需求,这个要怎么实现呢?

            参照阿里,拼多多,字节等大厂都是通过将字段分词加密拼成一个大的字符串,然后再通过这个字段来模糊匹配来实现

            例如手机号  15234568790,在存储 15234568790加密后的数据的同时,将手机号按照3位一分词,然后进行加密再拼接,这样就是152  523 234 345 456 568 687 879 790 分别将这些进行加密然后再拼接起来存储到一个encrpty_phone字段,然后模糊匹配时按照encrypt_phone like '%152%' 这样查询即可。

            这样做的缺点就是对匹配的字符的最短长度有要求,同时需要额外的存储空间。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐