DB 테이블에 비밀번호 암호화

Legday_Dev·2023년 9월 7일
0

Spring

목록 보기
6/14
post-thumbnail

스프링 시큐리티를 디테일하게 공부하진 못했지만 미니프로젝트를 하면서 겉핡기식 공부중에 비밀번호를 암호화 하는 방법을 알아냈다.

비밀번호 암호화 세팅

  • 스프링 시큐리티 세팅파일에 가서 아래와 같이 선언해준다
    @Configuration
    public class SecurityConfig {
        @Bean
        BCryptPasswordEncoder encode(){
            return new BCryptPasswordEncoder();
        }
    }
  • 이제 암호화 로직을 실행시키는 파일에서 BCryptPasswordEncoder 를 DI 해서 encode() 를 사용하면 된다

암호화 구현 코드

  • User 가 회원가입 하는 로직에서 사용한다.

  • 암호화를 하는 encode() 함수에는 사용자가 가입할 때 적은 비밀번호를 가져와서 암호화 비밀번호로 감싸준다.

  • 암호화된 비밀번호를 set 한 엔티티를 persist() 해주면 끝이다 !!

    @RequiredArgsConstructor
    @Service // 1. IoC 등록 2. Transaction 관리
    public class AuthService {
    
        private final UserRepository userRepository;
        private final BCryptPasswordEncoder bCryptPasswordEncoder; //비밀번호 암호화
    
        @Transactional
        public User 회원가입(User user){
            // 회원가입 진행(Repository 필요)
            String encPassword = bCryptPasswordEncoder.encode(user.getPassword()); // 암호화된 패스워드가 됐다.
            user.setPassword(encPassword);
            user.setRole("ROLE_USER");
            User userEntity = userRepository.save(user);
            return userEntity;
        }
    }
  • 이렇게 암호화된 상태로 DB 에 들어간다 !!

profile
백엔드개발자

0개의 댓글