Back-End/Spring

[Spring Security] 비밀번호 암호화 PasswordEncoder

HMHA 2023. 2. 9. 13:40
300x250
반응형

1. Password Encoder

스프링 시큐리티(Spring Security)에서 제공하는 비밀번호 암호화 방법이다. 단방향 암호화로 진행이 되는데 인터페이스와 구현체를 제공한다.

  • 인터페이스 구성 요소
public interface PasswordEncoder {

  // 비밀번호를 단방향 암호화
  String encode(CharSequence rawPassword);

  // 암호화되지 않은 비밀번호(raw-)와 암호화된 비밀번호(encoded-)가 일치하는지 비교
  boolean matches(CharSequence rawPassword, String encodedPassword);

  // 암호화된 비밀번호를 다시 암호화하고자 할 경우 true를 return하게 설정
  default boolean upgradeEncoding(String encodedPassword) { return false; };
}
  • 사용 하기
/* import 위치 */
import org.springframework.security.crypto.password.PasswordEncoder;

/* 인터 페이스 선언 */
@NonNull
    private PasswordEncoder passwordEncoder;

/*암호화 사용*/
this.passwordEncoder.encode(user.getPassword())

암호화를 사용해서 저장하게되면 이렇게 암호화가 진행되어 DB에 저장된다.

암호화 되어 저장된 DB내부 모습

 

 

  • 암호화된 비밀번호 확인하기 => matches() 사용하기.이런 식으로 db에 저장된 암호화된 비밀번호와 사용자가 입력한 평문의 비밀번호를 비교하여 동일한지 확인 할 수있다.
public boolean confirmUser(String password, String dbPassword) {
        return passwordEncoder.matches(password, dbPassword);
}

 

 

출처 : https://footprint-of-nawin.tistory.com/83

 

[ Spring Security ] 비밀번호 암호화 PasswordEncoder

스프링 시큐리티에 관해서 정리를 한것같다고 생각했는데, 비밀번호 암호화 부분이 남아있었다. 이번에 개발하면서 사용한 부분과 내용을 정리해 보고자 한다. 1. Password Encoder 스프링 시큐리티(

footprint-of-nawin.tistory.com

 

300x250
반응형