zoukankan      html  css  js  c++  java
  • password安全之动态盐

    首先,我们看看什么是盐:http://zh.wikipedia.org/zh/%E7%9B%90_%28%E5%AF%86%E7%A0%81%E5%AD%A6%29

    通常情况下,当字段经过散列处理(如MD5),会生成一段散列值,而散列后的值通常是无法通过特定算法得到原始字段的。可是某些情况,比方一个大型的彩虹表,通过在表中搜索该MD5值,非常有可能在极短的时间内找到该散列值相应的真实字段内容。

    加盐后的散列值,能够极大的减少因为用户数据被盗而带来的password泄漏风险,即使通过彩虹表寻找到了散列后的数值所相应的原始内容,可是因为经过了加盐,插入的字符串扰乱了真正的password,使得获得真实password的概率大大减少。

    可是非常多人没意识到的是静态盐仍然不够安全。因为静态盐要面临两种攻击:

    1,基于特定的静态盐,能够生成特定的彩虹表.

    2,对静态盐处理过的散列password,能够按出现频率进行排序,最常出现的散列password,相应的明文password必定还是那些111111、123456之类的。


    因此,对于重要的账号password,我们须要採用动态盐来对password进行混淆。一个经常使用做法就是把账号名进行MD5之后,作为动态盐。则上述两种攻击将失效。

    比方,username是wsq,相应的md5是4572381974328f9c作为动态盐,password是123456,加上动态盐之后为4572381974328f9c123456,再MD5是d16e970d6e5b95b9。则终于的计算结果是无法推測的(unguessable)


  • 相关阅读:
    python appium环境搭建
    github 删除某个文件
    python 导入的模块使用了相对路径,导致找不到文件错误
    python asyncio协程
    python 获取调用函数的名字和行号
    monkey测试命令
    python 属性查询顺序,数据描述符
    JS各循环的差别
    AngularJS复习小结
    那些不正经的前端笔试题
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/3819492.html
Copyright © 2011-2022 走看看