我看到了https://youtu.be/8ZtInClXe1Q今天的视频,它让我思考。如果salded hashing实现如下所示:存储密码
使用CSPRNG生成长随机盐。将salt预先添加到密码中,并使用标准的密码哈希函数(如Argon2、bcrypt、scrypt或PBKDF2(对其进行哈希。将salt和hash都保存在用户的数据库记录中。
验证密码
从数据库中检索用户的salt和hash。将salt预先设置为给定的密码,并使用相同的哈希函数对其进行哈希。将给定密码的哈希与数据库中的哈希进行比较。如果它们匹配,则密码是正确的。否则,密码不正确。
基本上,你用一个散列密码将盐存储在那里。如果有人对该数据表有内部访问权限,难道他们不能像验证密码一样对密码进行逆向工程吗?
否。哈希函数被设计为单向的。你不能用盐来倒散列。
对不同的条目使用不同的盐是对彩虹表的防御。