php、mysql、JavaScript对于私密信息加密解密一致性问题解决方案

一、敏感信息泄露有哪些途径

  • 明文存储,比如直接把手机号、身份证存储到数据库。如果数据的用户和密码被一些不应该的人员看到,获取;就很容易造成泄漏
  • 明文传输,比如没有对敏感信息进行RSA或者AES加密,就在网络中进行传输

二、解决敏感信息泄漏的最佳途径

  • 明文存储
    对数据敏感信息加密后,再进行存储。有这样一个场景:有个用户表除了其他字段外,还有手机号 mobile_no 和身份证 identity_card ,这两个敏感信息存储字段。如果直接储存mobile_no和identity_card明文,就很容易泄漏。
    可以对这两个字段进行对称加密或者非对称加密存储,分别定义两个加密字段 mobile_no_encrypted 和 identity_card_encrypted。但是进行加密存储到数据库必然导致以下两个问题:
    如何进行精准查询匹配
  • 如何进行模糊查询匹配
  • 如何进行精准查询匹配?
    为了解决这个问题,还得多加一个字段,对于手机号添加 mobile_no_sha 字段,身份证添加 identity_card_sha 字段。这两个字段分别存储手机号和身份证的SHA-1的散列码(也可以使用md5算法)。这样的话,如果精准查询就直接比对SHA-1散列码就行。
    select * from t_user where mobile_no_sha = sha-1(mobile_no)如何进行模糊查询匹配?
    对应模糊查询就有点麻烦了!!!
    通常数据库自带有加解密函数,如MySQL的PASSWORD ,MD5,AES_ENCRYPT等等。对于密码等信息可以采用单向加密,验证的时候用同样的方式加密匹配即可。而对于需要比对原内容的模糊查询,则需要使用双向加密,也即可以解密,在MySQL可以使用自带的AES加密。完成存储加密,读取解密后,就可以实现模糊搜索了:
    存储的时候mysql 使用 HEX(AES_ENCRYPT(‘123456’,‘TEST’));
    php加密(php加密后存储mysql)
    bin2hex(base64_decode(openssl_enc
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_33911195

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值