盐值
Created: November 8, 2021 Sort: Security
Homework:盐值以明文的形式和经过加密的口令一起放在口令文件中,攻击者无需猜测就可以获得盐值和加密的口令,为何依然能提高口令的安全性?
1. 盐值是什么
百度百科对盐值的定义如下:
"用户注册时,系统用来和用户密码进行组合而生成的随机数值"
实际上,这个随机生成的一组字符串,可以包括随机的大小写字母、数字、字符,并且,位数可以根据要求而不一样。
2. 盐值如何提高安全性
不同形式的密码在数据库中的安全性:
- 明文:一旦泄露数据,便可直接利用明文密码获得用户的账号信息;
- Hash 值:用户注册时,系统将用户输入的密码进行一次 Hash 散列处理。登陆验证时,把结果与数据库保存的值进行比较,一致则通过。
假设MD5表的大小为 size = 256G ,
则枚举的复杂度为 O(size)
- Hash 值 + 盐值:用户注册时,系统随机生成一段数值,与用户密码相连,然后进行 Hash 散列处理。登陆验证同上。
假设MD5表的大小为 size = 256G ,
盐值的组合数量大小为 salt = 4096,
则枚举的复杂度为 O(size * salt),
足足增加了 4096 倍!