客户的敏感信诸如手机应该如何加密保存

诸如md5()sha1()等混合加密 应该在网络上都可以解密的
还有什么办法吗
可以做到比较高的等级的加密

阅读 2.4k
3 个回答

手机信息虽然是敏感数据,但是在大部分情况下,都不会进行处理保存,因为如果你的数据库能被攻破,大概率你的服务器也已经被攻破了,别人可以直接拖你整个服务器去慢慢玩。

如果你觉得需要,可以使用像 AES 这些效率较高的算法进行处理,当然,也请妥善保存秘钥。

当然,如果每个信息都去处理一下 肯定是不划算的,可以把你认为需要进行处理的数据进行封包,序列化后进行存储。

如果是常用信息,非常不建议这样操作,因为每次的解密也是需要开销的,当然这对 AES 这类算法来说几乎忽略不计。

Hash 不是加密

再度强调 md5sha1 不是加密。其为 哈希摘要算法,不可逆。现有的解密是因为彩虹表的存在,只要你乐意,你也可以预先把 1300000000019000000000 的 hash 值算出来,存到数据库,这就形成了一个简单的彩虹表,但是,如果对 hash 进行加盐处理后,比如 原文是 13122223333,现在给他加盐变成 xxxxxxx13122223333xxxxxx.$%^&* ,能碰撞出来的几率就会根据位数和字符复杂度成倍增长。一般只是对像用户密码这些,敏感数据才做此类处理。但是 这些算法并不绝对安全,因为这两个算法,同一个原文计算出来的 hash 始终是相同的。

在 php 中,有 password_hash,password_verify,password_needs_rehash ,使用这三个方法可以构建出安全的 密码存储。

如果你使用哈希算法对这些信息进行了处理,那当你需要时,如何知道用户的手机号?比如用户账号异常你需要推送信息过去?

这种还需要反解的,还不如在运维安全、权限等级别上做限制。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题