跳转至

> Back

盐值

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 倍!