스프링4

오가람·2023년 4월 26일

스프링 암호화

암호화 되기전 상태를 평문 상태라고 함
-> 암호화 하지 않으면 감옥 감
예전 방식 : sha-512
비밀번호 담긴 요청 -> 필터 -> wrapper(암호) -> Servlet
현재방식 : 서비스단에서 비교를 함

 전달 받은 비밀번호를 암호화하여
	 DB에서 조회한 비밀번호와 비교 (DB에서 비교 X)
	 sha 방식 암호화
	 A 회원 / 비밀번호 1234 -> 암호화 : abcd
	 B 회원 / 비밀번호 1234 -> 암호화 : abcd (암호화 시 변경된 내용이 같음)
 Bcrypt 암호화 : 암호화 하기전에 salt(소금양념)를 추가하여 변형된 상태로 암호화를 진행
	 A 회원 / 비밀번호 1234 -> 암호화 : abcd
	 B 회원 / 비밀번호 1234 -> 암호화 : sf23
	 * 매번 암호화되는 비밀번호가 달라져서 DB에서 직접 비교 불가능
	 대신 Bcrypt 암호화를 지원하는 객체가
	 이를 비교하는 기능(메서드) 가지고 있어서 이를 활용하면 된다!

설정

  • 메이븐 레파지토리 들어가서 검색창에 spring-security 치기

    1. Spring Security Core
    1. Spring Security Web
    1. Spring Security Config

    이거 3개 버전은 5.7.1 버전으로 dependency 복사하여 pom.xml 파일에
    dependencies 에 붙여넣기한다

    설정2

  • spring 폴더에서 컨트롤 n spring입력후 spring Bean Configuration File 생성

  • 이름 설정(spring-security.xml)후 넥스트 이후 security 체크!

  • 새로만든 xml 파일에서 작성하기

    <!-- Bcrypt 암호화용 bean 생성 -->
    		<bean id="bcryptPasswordEncoder" 
    				class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" />
    

    설정3

  • web.xml 파일에 들어가서

    <param-value>에서 classpath:spring/spring-security.xml</param-value>

    추가하기
    프로그램 시작할때 나도 실행해줘! 이뜻

    서버 안켜질때

    Servers 탭에서 서버 오른쪽 클릭후 clean한번 해주기!!

    입력받은 비밀번호(평문) 과 DB에서 조회한 비밀번호(암호화) 비교

profile
개발자준비생

0개의 댓글