Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Kakao
- github markdown
- 비동기
- khaiii
- 플젝후체크
- 파이썬
- taskkill
- 자바파이썬
- 필사
- github
- Anaconda
- expression statement is not assignment or call html
- 파이콘
- terminate
- SSR
- #스파르타코딩클럽후기 #내일배움캠프후기
- gitbash
- 카우치코딩 #couchcoding #6주포트폴리오 #6주협업프로젝트v
- address
- 서버사이드렌더링
- Machine Learning
- 코딩온라인
- 마크다운
- 모바일웹스킨
- Morphological analysis #Corpus
- Technical Writing
- 클라이언트사이드렌더링
- 출처: 자바의 신 8장
- 카우치코딩 #couchcoding #6주포트폴리오 #6주협업프로젝트
- PID
Archives
- Today
- Total
개발 일기
해시 암호화가 충분하지 않을 때 - BCrypt (솔트) 적용 본문
상황
비밀번호 암호화를 구현하는 기술을 고민하고 있었습니다. 해시를 적용하고자 했으나, 해시는 같은 입력 값에 대해, 항상 같은 결과 다이제스트가 나오는 취약점이 있습니다.
문제
위의 취약점 때문에, 해시 알고리즘은 레인보우 테이블을 사용해서 해킹 당할 위험이 있었습니다.
해결/결과
솔트는 해싱 하기 전에, 랜덤 문자열을 비밀번호에 더합니다.
솔트와 함께 암호화 하면, 솔트가 임의 값이기 때문에 원래 값을 찾아내기 어렵습니다.
즉, 사용자 별로 다른 솔트를 사용한다면, 동일한 패스워드를 사용하더라도 다이제스트가 다르게 생성됩니다.
자바에서 지원하는 BCrypt 라이브러리를 사용하여 솔트를 구현했습니다.
해시와 비교할 때, 결과값이 예측 불가능하기 때문에, 보안을 강화하는 이점을 얻을 수 있었습니다.
'Tech > 배워서 남주기' 카테고리의 다른 글
Redis로 다중 서버 환경에서 로그인 정보 불일치 문제 해결하기 (0) | 2022.10.08 |
---|---|
[객체 지향적 설계] 디자인 패턴과 레이어드 아키텍처 적용하기 (0) | 2022.09.29 |
인터셉터 / 커스텀 애노테이션 활용하여 로그인 강제 (0) | 2022.09.09 |
[인증] JWT 와 세션 방식 비교 (0) | 2022.07.16 |
자바의 가비지 컬렉션 (0) | 2022.04.26 |
Comments