我的密码盐有多大?

时间:2011-09-15 22:36:28

标签: security database-design password-hash

  

可能重复:
  What is the optimal length for user password salt?

我有一个如下数据库:

create table user (id int primary key auto increment,
     username varchar(64),
     password varchar(128), # sha512 hash of password
     password_salt varchar(128) # sha512 hash of a random number used as salt
)

使用salt确保密码安全性是一个好主意吗?盐应该多久?我认为使用128位(SHA-512)盐不会有什么坏处,但我以前错了。

1 个答案:

答案 0 :(得分:1)

我有几条评论:

  • 每个用户的盐应该是随机且唯一的,但它们don't have to be a hash digest。盐的想法只是使每个用户的哈希摘要唯一,以抵抗字典攻击和彩虹表攻击。无论盐的长度如何,盐都不会增加散列摘要算法的强度。

  • DES使用12位盐。更新的UNIX密码系统使用更多,最多128位。

  • 如果您想要更强的密码,请考虑使用bcryptPBKDF2

  • FWIW,无论输入的长度如何,SHA-512哈希摘要(编码为十六进制数字)始终都是128个字符。所以我使用CHAR(128)而不是VARCHAR(128)。使用BINARY(2)或BINARY(3)作为盐。

相关问题