본문 바로가기

개인공부

SpringSecurity 패스워드 암호화(bcrypt)

반응형

bcrypt란?

bcrypt는 비밀번호 해시함수로 Niels Provos와 David Mazieres에 의해 만들어졌으며 Blowfish라는 암호에 기반하였다. Bcrypt는 조정할 수 있는 알고리즘을 써서 패스워드를 저장한다. Bcrypt는 패스워드를 해싱할 때 내부적으로 랜덤한 솔트를 생성하기 때문에 같은 문자열에 대해 다른 인코드된 결과를 반환한다. 하지만 공통된 점은 매번 길이가 60인 String을 만든다.

 

 

Spring Security의 PasswordEncolder를 사용

 

의존성

		<!-- Spring Security -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-security</artifactId>
		</dependency>

Bean 등록

	@Bean
	public PasswordEncoder passwordEncoder() {
		return PasswordEncoderFactories.createDelegatingPasswordEncoder();
	}

Service

	@Autowired PasswordEncoder passwordEncoder;

	public Account createNew(Account account) {
		account.encodePassword(passwordEncoder);
		
		return accountRepository.save(account);
	}

Dto

	public void encodePassword(PasswordEncoder passwordEncoder) {
		this.password = passwordEncoder.encode(this.password);
	}

123인 암호가 다음과 같이 인코딩 된것을 확인 할 수 있다.

반응형

'개인공부' 카테고리의 다른 글

CSRF, CORS 개념  (0) 2020.10.04
SpringSecurity 정리 및 샘플코드  (0) 2020.10.04
Mybatis VS Hibernate  (0) 2020.10.04
git flow, git hub flow , git lab flow  (0) 2020.10.04
OAuth, OAuth2  (0) 2020.10.04