Cryptography 为什么盐会阻止彩虹桌子?

Cryptography 为什么盐会阻止彩虹桌子?,cryptography,salt,rainbowtable,Cryptography,Salt,Rainbowtable,可能重复: 在你提到这件事之前,我已经读过了,但我没有听懂 这是我对盐/彩虹桌子的理解。请纠正我的错误 用户输入原始密码 password与salt连接,以提供passwordsalt或saltpassword passwordsalt/saltpassword散列为值hash 输入hacker 黑客利用彩虹表将散列转换为passwordsalt/saltpassword 黑客手中有字符串letmein1horse 给定letmein1horse,这难道不意味着有两种选择: 密码是letmei

可能重复:

在你提到这件事之前,我已经读过了,但我没有听懂

这是我对盐/彩虹桌子的理解。请纠正我的错误

  • 用户输入原始密码

  • password
    salt
    连接,以提供
    passwordsalt
    saltpassword

  • passwordsalt
    /
    saltpassword
    散列为值
    hash

  • 输入hacker

  • 黑客利用彩虹表将
    散列
    转换为
    passwordsalt
    /
    saltpassword

  • 黑客手中有字符串
    letmein1horse

  • 给定
    letmein1horse
    ,这难道不意味着有两种选择:

  • 密码是
    letmein1
    ,salt是
    horse

  • 密码是
    horse
    ,salt是
    letmein1

  • 所以你明白我为什么困惑了。我的理解显然是有缺陷的,因为如果这就是它的工作原理,显然盐是无用的


    或者:我的理解正确吗?是整个迭代方案完全消除了这个明显的弱点?

    攻击者将无法创建哈希值(密码+salt)的预计算查找表(即彩虹表),因为每个salt都需要大量计算。一个简单的字典攻击仍然是很有可能的,尽管速度慢得多,因为它不能预先计算

    彩虹表可以帮助您从散列转换为具有有限字符集的短序列。例如,彩虹表可能支持长度小于10个字符的所有字母数字序列


    salt长得多,使用的字符集也更宽。如果您使用128位随机salt,创建彩虹表在物理上变得很难。

    彩虹表非常庞大,计算起来非常长,如果您在所有密码前加上相同的字符串16字节字符串,您几乎可以肯定黑客不会为其创建彩虹表……离题投票?奇怪,奇怪?奇怪的是,没有阅读FAQ并假设它与主题相关。仅仅因为它吸引了程序员的兴趣,并不能使它成为一个主题。这显然是一个加密问题,而不是一个编程问题。@GregS,那我们为什么还要有加密标签呢?为什么在这个主题上所有的问题都是相似的/相同的?彩虹表只有在你能破解超过1个密码的情况下才是有利可图的,否则暴力强迫会更快(如果你找到匹配的密码,为什么不停止呢)。如果每个密码都有不同的salt,您确实可以构建彩虹表,但每个彩虹表只能用于一个密码(salt)。