Spring Security 에서 지원하는 비밀번호 단방향 암호화 인터페이스
스프링 시큐리티에서 비밀번호를 안전하게 저장할 수 있게 지원해주는 인터페이스이다.
비밀번호를 안전하게 암호화하며, 일치 여부를 검증하는 기능을 제공한다.
이 PasswordEncoder를 사용하기 위해서 먼저 의존성을 추가해야한다.
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를 반환해준다
따라서 로그인을 통해 비밀번호를 확인하고 싶고, 그 비밀번호를 외부 사람들에게 알려지기 싫다면 암호화를 통해 보호하는게 좋다.