암호화된 비밀번호 비교하기

꽃봉우리·2024년 8월 1일

암호화된 비밀번호 비교

암호화된 비밀번호를 비교하기 위해서는 passwordEncoder.matches() 메서드를 사용해야 합니다.
해당 메서드는 Spring Security에서 제공하는 PasswordEncoder 인터페이스의 일부입니다.

사용 방법

boolean isMatch = passwordEncoder.matches(rawPassword, encodedPassword);
  • rawPassword는 사용자가 입력한 평문 비밀번호입니다.

  • encodedPassword는 데이터베이스에 저장된 암호화된 비밀번호입니다.

  • 반환값은 두 비밀번호가 일치하면 true, 일치하지 않으면 false입니다.

사용 예시

public SignUpResponseDto signUp(SignUpRequestDto requestDto) {
        String id = requestDto.getId();
        String password = requestDto.getPassword();
        String checkPassowrd = passwordEncoder.encode(requestDto.getCheckPassword());
        String name = requestDto.getName();
        String email = requestDto.getEmail();
        String nickname = requestDto.getNickname();
        String profile = requestDto.getProfileImage();

        //ID 중복확인
        duplicatedId(id);

        //닉네임 중복확인
        duplicatedNickName(nickname);

        //비밀번호 재입력 및 확인
        checkPassword(password, checkPassowrd);

        String encodePassword = passwordEncoder.encode(password);
private void checkPassword(String password, String checkPassword){
      if(!passwordEncoder.matches(password, checkPassword)){
        throw new MismatchException(ErrorType.MISMATCH_PASSWORD);
      }
  }

checkPassword 메서드에서 password를 평문, checkPassword는 암호화된 값으로 받아와서 사용한 뒤, 다시 평문인 password를 암호화시키면 통과~

0개의 댓글