🍃 Spring Boot

[Spring Boot] Spring Security Crypto를 이용한 비밀번호 암호화

별이⭐ 2024. 6. 6. 18:33

Spring Security를 사용하지 않은 회원가입에서 비밀번호 암호화가 필요해 찾아보았다.

Spring Security Crypto


  • Spring Security의 핵심 모듈로 제공되지만, Spring Security와 다른 Spring 코드에 관한 의존성이 없다.
  • 즉, 의존성에 구애받지 않는 유틸리티 클래스로 활용이 가능하다.

적용 예시

implementation 'org.springframework.security:spring-security-crypto'
@Configuration
public class AuthConfig {

    // 패스워드 암호화를 위해 PasswordEncoder를 빈으로 등록
    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }
}
private final PasswordEncoder passwordEncoder;

@Transactional
public Board saveBoard(Board board) {
    String encodePassword = passwordEncoder.encode(board.getPassword());
    board.setPassword(encodePassword);

    board.setCreatedAt(LocalDateTime.now());
    board.setUpdatedAt(LocalDateTime.now());
    return boardRepository.save(board);
}
// 글 수정 & 삭제 시 password 확인
public boolean verifyPassword(Long id, String password) {
    Board board = boardRepository.findById(id).orElse(null);

    if (passwordEncoder.matches(password, board.getPassword()))
        return true;

    return false;
}

비밀번호 암호화 완료!