关于PHP自带的加密函数password_hash

我们都知道默认会使用随机salt来加密,salt和算法会跟哈希一起组装成密文返回,那么问题来了,salt都暴露出来了,那用salt加密的意义何在呢?

阅读 2.1k
2 个回答

不是这么理解的

在现有阶段下.salt 主要是增加了原文长度而是的爆破的成本增加,从而放弃对密文的破解.你就算是知道我的 salt,你也不知道我的原文有多长,我是怎么拼接我的原文的.而这样的话,破解的成本基本那都是无穷大的了.

比如 md5(123456),你拿到这个结算出的结果,在那些所谓的 md5 破解的网站上应该是秒破,别人都有这些常规词典.
但是 md5(FknL3g2ZNb2dSYsBR6veh4qzvgSgUUtu.123456),你拿到这个结果,这个极大概率上是破解不错来的.

那些破解网站,基本上都是暴力破解,但是暴力破解的问题,就在于随着原文长度增加,暴力破解理论上的时长会指数级增长.你的 salt 弄长一点的话,基本都是无法暴力破解碰撞出来原文的.况且,你甚至还能通过一些简单的算法,通过salt 对密码进行一次甚至多次混淆.

什么叫做暴露了?
password 你怎么不说暴露了?

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