일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- java.sql.SQLSyntaxErrorException
- recursion example
- CSTS 폭포수 모델
- 톰캣 실시간 로그
- 해외증권 양도세 한국투자증권
- 재귀함수 예제
- katalon xpath
- js 자동완성
- 최대공약수 예제
- 피보나치함수
- 국세청 해외주식 양도세 신고방식
- bfs 미로탐색 java
- katalon 사용법
- 피보나치 예제
- katalon
- 피보나치함수 예제
- katalon 자동화
- 테스트 자동화
- Katalon Recorder 사용법
- git 연동
- tomcat log
- 한국투자증권 해외주식 양도세
- 한국투자증권 양도세 신고
- 재귀 예제
- 홈택스 해외주식 양도세
- katalon 비교
- 주식 양도세 신고방법
- javascript 자동완성
- 해외주식 양도세 신고
- oracle group by
- Today
- Total
엄지월드
Spring security bcrypt 암호화 하기 본문
필자는 spring security에서 어떻게 하면 간단하게 암호화를 도입할 수 있을까 고민하던 중 좋은 정보를 찾게 되었다.
그것은 security-context.xml에서 일부분의 소스만 추가해주면 된다는 것이었다!
방법 - 1
먼저, 데이터베이스에 입력이 되는 Controller를 살펴보자.
먼저,
@Autowired
private BCryptPasswordEncoder bcryptPasswordEncoder;
를 추가해서 bcryptPasswordEncoder 속성을 가져온다.
user.setPassword(this.bcryptPasswordEncoder.encode(user.getPassword()));
-> user.getPassword()로 패스워드를 가져와 bcrypt로 인코딩을 해서 user.setPassword로 넣어준다.
그리고 나서 userMapper.insertUser(user);를 이용해 DB에 INSERT 한다.
방법 - 2
user.setPassword(BCrypt.hashpw(user.getPassword(), BCrypt.gensalt(10)));
-> 숫자가 높아질수록 해쉬를 생성하고 검증하는 시간은 느려진다. 즉, 보안이 우수해진다. 하지만 그만큼 응답 시간이 느려지기 때문에 적절한 숫자를 선정해야 한다. 기본값은 10이다. ( 입력하지 않으면 10으로 인식한다 )
그러면 회원가입을 했을 때 DB에 아래와 같이 들어가게 된다. 모두 비밀번호를 1234로 가입한 결과이다.
이제 DB에 bcrypt로 암호화 하여 집어넣었으니, 로그인 하는 방법을 알아보자!
<bean id ="bcryptPasswordEncoder" class = "org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder"/>
-> BCrypt로 인코딩 하기 위해 org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder의 정보를 가져와 bcryptPasswordEncoder으로 id를 저장한다.
<sec:password-encoder ref="bcryptPasswordEncoder"/>
-> ref 위치에 bean 에서 id로 가져온 bcryptPasswordEncoder 을 입력해서 참조할 위치를 알려준다.
이렇게 설정하면 로그인 페이지에서 아이디와 비밀번호를 입력하면 값을 받아와서 bcrypt 암호화로 인코딩 한 뒤에 DB의 값과 비교한다.
도움이 되셨다면 광고 한번씩 클릭 부탁드립니다 😁
'java > Spring' 카테고리의 다른 글
윈도우에서 SSH 서버로 파일 전송하는 방법(iputty) (0) | 2017.05.08 |
---|---|
서버 구축 방법 - 1 (0) | 2017.05.08 |
onclick confirm설정하는법 (2) | 2017.05.06 |
MySQL Date형식 표시 (java.util.Date) (0) | 2017.05.06 |
Spring과 Mysql 연동하기 (0) | 2017.05.05 |