기타
스프링시큐리티를 사용하여 비밀번호 암호화하기
D.Y
2016. 5. 30. 16:06
반응형
안녕하세요.
오늘은 스프링시큐리티(Spring-security)를 사용하여, 비밀번호를 암호화 하는 방법에 대해서 알아보겠습니다.
비밀번호를 암호화하는 암호화 알고리즘의 종류는 다양하지만, 그 중에서도 많이 사용되는 방법으로는 BCrypt와 Pdkdf2가 있습니다.
스프링시큐리티를 사용하여 비밀번호를 암호화하는 방법
- spring-security 에서 제공하는 비밀번호 암호화 모듈을 사용합니다.
public interface PasswordEncoder { String encode(String rawPassword); boolean matches(String rawPassword, String encodedPassword); }
- BCrypt를 사용하여 암호화하는 방법
// Create an encoder with strength 16 BCryptPasswordEncoder encoder = new BCryptPasswordEncoder(16); String result = encoder.encode("myPassword"); assertTrue(encoder.matches("myPassword", result));
- Pbkdf2를 사용하여 암호화하는 방법
// Create an encoder with all the defaults Pbkdf2PasswordEncoder encoder = new Pbkdf2PasswordEncoder(); String result = encoder.encode("myPassword"); assertTrue(encoder.matches("myPassword", result));
※ 위와 같이 암호화를 하게 되면, salt값을 랜덤하게 만들어줘서 같은 비밀번호를 사용하더라도 다른 값으로 데이터베이스에 저장할수있습니다.
참조
- 스프링시큐리티 Reference에 자세히 나와있습니다.
- http://docs.spring.io/spring-security/site/docs/4.1.0.RELEASE/reference/htmlsingle/
반응형