使用 BCryptPasswordEncoder 加密您的密码

x33g5p2x  于2022-09-28 转载在 其他  
字(1.0k)|赞(0)|评价(0)|浏览(549)

在本教程中,我们将学习如何使用 BCryptPasswordEncoder 生成加密密码。

BCryptPasswordEncoder 可用于生成带有随机盐的加密密码。 这意味着每次调用都会有不同的结果,因此我们只需要对密码进行一次编码。

这是一个示例 Java 类,它为两个字符串生成 BCrypt 编码的密码:

package com.example.testrest;

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

public class MyEncoder {
  public static void main(String[] args) {
    BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
    String encoded = encoder.encode("password1");
    System.out.println(encoded);
    encoded = encoder.encode("password2");
    System.out.println(encoded);
  }
}

但请注意,BCrypt 算法生成长度为 60 的密码,因此请确保使用适当的长度定义数据库列(存储密码的位置)。

如果您想在注册过程中生成密码,请确保在您的配置 Bean 中添加:

@Bean public PasswordEncoder passwordEncoder() {
  return new BCryptPasswordEncoder();
}

然后,在管理用户存储的Controller方法中:

@Autowired private PasswordEncoder passwordEncoder;
@Override public User registerNewUser(User user) {
  String clearTextPassword = user.getPassword();
  user.setPassword(passwordEncoder.encode(clearTextPassword));
  return repository.save(user);
}

如果您想要使用 BCryptPasswordEncoder 的完整示例应用程序,请查看本教程:使用 JDBC 身份验证保护 Spring Boot 应用程序

相关文章

微信公众号

最新文章

更多