반응형
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 |