代码之家  ›  专栏  ›  技术社区  ›  RodeoClown

我需要和Bcrypt一起储存盐吗?

  •  180
  • RodeoClown  · 技术社区  · 16 年前

    bCrypt's javadoc 具有如何加密密码的以下代码:

    String pw_hash = BCrypt.hashpw(plain_password, BCrypt.gensalt()); 
    

    要检查明文密码是否与以前散列的密码匹配,请使用checkpw方法:

    if (BCrypt.checkpw(candidate_password, stored_hash))
        System.out.println("It matches");
    else
        System.out.println("It does not match");
    

    这些代码片段向我暗示随机生成的盐被丢弃了。是这种情况,还是这只是一个误导性的代码片段?

    1 回复  |  直到 11 年前
        1
  •  207
  •   ircmaxell    11 年前

    salt被合并到散列(以base64格式编码)。

    例如,在传统的Unix密码中,salt存储为密码的前两个字符。其余字符表示哈希值。checker函数知道这一点,并将哈希分离以将盐取出。