Rya*_*ard 47 security hash cryptography
我已经阅读了这两个主题,而且我似乎无法完全理解盐渍和无条件哈希之间的区别.
Nic*_*son 47
salt是一个非秘密的随机值,用于确保相同的明文不会一致地散列到相同的输出值; 它用于防止诸如Rainbow Tables之类的预计算攻击.
随机数("一次使用的数字")是 - 通常是随机生成的 - 与加密方案中的消息相关联的值,并且在某个指定范围内(例如给定的时间间隔或会话)必须是唯一的.它通常用于防止重放攻击.
粪便和盐类似并且用于相关目的,但不相同.两者通常是随机生成的,而不是秘密的,并用于防止可能对系统造成的攻击.它们的主要区别在于它们的使用环境,以及重复的后果 - 重复的盐不重要,但重复的nonce会产生可怕的后果.
散列是一种不同于加密的方法(使用我们可以解密的密钥).固定大小和数据的轻微变化会产生全新的哈希值.就像指纹一样.示例:MD5,MD6,SHA-1,SHA-2等等.
使用哈希格式在数据库中存储密码也不安全,因为Rainbow表,字典攻击和暴力(GPU可以计算每秒数十亿的哈希值).为了避免这些问题,我们需要使用Salt.
使用Salt(随机数),因此相同的密码并不总是生成相同的密钥.即简单地添加盐以使公共密码不常见.
一个盐是我们加入到我们的哈希值,以防止攻击彩虹使用彩虹表基本上就是一些哈希值转换成密码如下只是庞大的查找表的内容:
dffsa32fddf23safd -> passwordscrete
f32ksd4343fdsafsj -> stackoverflow
Run Code Online (Sandbox Code Playgroud)
所以黑客可以找到这个彩虹表,为了避免这个问题,我们必须存储密码和盐的组合哈希.
hash= hashFunction(passowrd+salt)
Run Code Online (Sandbox Code Playgroud)
一个随机数(ñ赭只用一次)并不需要是秘密的或随机的,但不能使用相同的密钥被重用.这用于防止重放攻击(又称回放攻击).
归档时间: |
|
查看次数: |
15708 次 |
最近记录: |