[Spring] 스프링에서 PasswordEncoder

이병수·2024년 2월 2일
0

스프링 정리

목록 보기
18/24

PasswordEncoder란?

Spring Security 에서 지원하는 비밀번호 단방향 암호화 인터페이스

PasswordEncoder

  • 스프링 시큐리티에서 비밀번호를 안전하게 저장할 수 있게 지원해주는 인터페이스이다.

  • 비밀번호를 안전하게 암호화하며, 일치 여부를 검증하는 기능을 제공한다.


이 PasswordEncoder를 사용하기 위해서 먼저 의존성을 추가해야한다.

build.gradle 추가

implementation 'org.springframework.boot:spring-boot-starter-security'

일단 먼저 스프링 시큐리티를 먼저 의존성에 추가해주면 사용이 가능하다.

일단 위 사진에서는 암호화를 사용하기 위해 스프링 빈으로 먼저 등록을 한 뒤에 사용해주기 위해서 작성을 하였다.

PasswordEncoder 인터페이스에 들어가서 확인해보면

  • encode() 메서드 : String 으로 들어오는 파라미터 값을 암호화하여 반환해준다.

  • matches() 메서드 : 첫번째 파라미터 값에는 기존의 비밀번호, 두번째 파라미터는 암호화된 비밀번호를 넣어서 둘을 비교해준다.

PasswordEncoder passwordEncoder = new PasswordEncoder();

String password = "sk123456789";
String hashedPassword = passwordEncoder.encode(password);
// hashedPassword 안에는 암호화된 문자열이 들어가 있다. "~~~"

boolean isTrue = passwordEncoder.matches(password,hashedPassword);
// 두 값을 비교하므로 true를 반환해준다.

이렇게 암호화를 통해 비밀번호의 정보를 숨기는 기능을 할 수 있다.

만약, 들어오는 비밀번호 값이 다르다? 그러면 false를 반환해준다

따라서 로그인을 통해 비밀번호를 확인하고 싶고, 그 비밀번호를 외부 사람들에게 알려지기 싫다면 암호화를 통해 보호하는게 좋다.

profile
백엔드 개발자가 되고 싶어요

0개의 댓글