본문 바로가기
Spring/SpringBoot

[goormedu 강의] 스프링부트 블로그 만들기 06 - 03 비밀번호 해쉬 후 회원가입하기

by 코딩맛 2024. 10. 5.
해당 글은 groomedu의 스프링부트 나만의 블로그 만들기 강의를 보고 개인적으로 정리한 글입니다.

 

시큐리티에서 해쉬 암호화된 비밀번호 값만 로그인이 되게함.

해쉬 암호화를 하면 고정길이의 16진수 값으로 변경

 

해쉬의 장점

- 원본값과 비교하여 위조되었는지 판별 가능

 

SecurityConfig

@Bean //IoC가 됌. 
public BCryptPasswordEncoder encodePWD() {
	return new BCryptPasswordEncoder();
}

SpringConfig에 위와 같이 선언.

BCryptPasswordEncoder는 Spring Security에서 제공하는 암호화 함수이다.

 

회원가입 Service

@Autowired
private BCryptPasswordEncoder encoder;

@Transactional
public int save(User user) {
	try {
		String rawPassword = user.getPassword();//1234 원문 
		String encPassword = encoder.encode(rawPassword); //해쉬
		user.setPassword(encPassword);
		user.setRole(RoleType.USER);
		userRepository.save(user);
		return 1;
	} catch (Exception e) {
		e.printStackTrace();
		System.out.println("UserService : 회원가입() : "+e.getMessage());
	} 
	return -1;
}

SpringConfig에서 BCryptPasswordEncoder를 Autowired해서 DI하고

user의 password 값을 encode해서 user entity에 세팅한다. 

 

회원가입 화면

 

USER 테이블 조회

 

회원가입 시 비밀번호 값이 해쉬값으로 저장된 것을 확인할 수 있다.