如何处理与存储用户身份证号及手机号等敏感信息?

想问问大家,如何对手机号这种字段进行加密存储呢?直接存明文,有时候会收到客户的投诉,怀疑是我们泄露了他们的手机号信息。那么该如何处理,才能保证不是我们泄露的呢,或者说就算泄露也能找到记录。

Promise
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 22

谁投诉谁举证 但现在工信部也是要求手机号等用户个人信息必须加密存储的 可以写个trait处理在入库的时候加密 查询的时候解密

1年前 评论
Promisehp (楼主) 1年前
kolin (作者) 1年前
Promisehp (楼主) 1年前
yangweijie

数据库字段加密 https://learnku.com/laravel/t/71384。 该扩展有版本限制,只支持php8 php7的得自己写兼容库 加密方式用 fips 不然空字段会报错。只支持加密后字段精确查询不支持模糊。

1年前 评论
Promisehp (楼主) 1年前

那模糊查询怎么办,就是比如有些地方需要验证手机号后4位,单独在存手机号后4位解决吗?加密了,也要解密。只是暴露数据库的危险性更小了。再说要举证的嘛,工信部(其实很难查得到,除非有sql注入漏洞)查到了在改呗。

1年前 评论
Ailon 1年前
ononl (作者) 1年前
Ailon 1年前
ononl (作者) 1年前
ononl (作者) 1年前
Ailon 1年前
deatil 1年前

hashids,把手机号拆分成 xxx - xxxx - xxxx, 然后用hashids进行加密

1年前 评论
Ailon 1年前
lizzj (作者) 1年前
Ailon 1年前
lizzj (作者) 1年前

model中对响应字段保存做个预处理呗。 laravel 自带的对称加密方法: use Illuminate\Support\Facades\Crypt;

$encryptedData = Crypt::encryptString('Sensitive data');

$decryptedData = Crypt::decryptString($encryptedData);

1年前 评论
Promisehp (楼主) 1年前
sanders

我将问题分解为存储和使用

存储

进行固定密码和向量的对称加密,这样做的目的:

  1. 信息可通过密码还原
  2. 信息可精确匹配
  3. 密码保存得当的情况下,信息泄露的风险被大幅降低
  4. 按需求存储脱敏后的非遮掩部分信息

使用

检索场景支持原文精确匹配,通过相同的加密方式将原文加密后进行匹配,或通过非遮掩部分进行匹配。

第三方使用场景兑换为虚拟号码后进行输出,如:虚拟手机号(由其他运营商提供,这里需要使用原文)。

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!