How can I hash a password in Java?

前端 未结 13 2350
暖寄归人
暖寄归人 2020-11-22 05:00

I need to hash passwords for storage in a database. How can I do this in Java?

I was hoping to take the plain text password, add a random salt, then store the salt a

13条回答
  •  佛祖请我去吃肉
    2020-11-22 05:43

    You could use Spring Security Crypto (has only 2 optional compile dependencies), which supports PBKDF2, BCrypt, SCrypt and Argon2 password encryption.

    Argon2PasswordEncoder argon2PasswordEncoder = new Argon2PasswordEncoder();
    String aCryptedPassword = argon2PasswordEncoder.encode("password");
    boolean passwordIsValid = argon2PasswordEncoder.matches("password", aCryptedPassword);
    
    SCryptPasswordEncoder sCryptPasswordEncoder = new SCryptPasswordEncoder();
    String sCryptedPassword = sCryptPasswordEncoder.encode("password");
    boolean passwordIsValid = sCryptPasswordEncoder.matches("password", sCryptedPassword);
    
    BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
    String bCryptedPassword = bCryptPasswordEncoder.encode("password");
    boolean passwordIsValid = bCryptPasswordEncoder.matches("password", bCryptedPassword);
    
    Pbkdf2PasswordEncoder pbkdf2PasswordEncoder = new Pbkdf2PasswordEncoder();
    String pbkdf2CryptedPassword = pbkdf2PasswordEncoder.encode("password");
    boolean passwordIsValid = pbkdf2PasswordEncoder.matches("password", pbkdf2CryptedPassword);
    

提交回复
热议问题