[Spring] 비밀번호 암호화

thingzoo·2023년 6월 30일
0

Spring

목록 보기
36/54
post-thumbnail

비밀번호 암호화 의무

회원 등록 시 '비밀번호'는 사용자가 입력한 문자 그대로 DB 에 등록하면 안 된다.
'정보통신망법, 개인정보보호법' 에 의해 비밀번호 암호화(Encryption)가 의무이다.

암호 알고리즘

  • 양방향 암호 알고리즘
    • 암호화: 평문 → (암호화 알고리즘) → 암호문
    • 복호화: 암호문 → (암호화 알고리즘) → 평문
  • 단방향 암호 알고리즘
    • 암호화: 평문 → (암호화 알고리즘) → 암호문
    • 복호화: 불가 (암호문 → (암호화 알고리즘) → 평문)

비밀번호 확인절차

  1. 사용자가 로그인을 위해 "아이디, 패스워드 (평문)" 입력 → 서버에 로그인 요청
    • 서버에서 패스워드 (평문) 을 암호화
    • 평문 → (암호화 알고리즘) → 암호문
  2. DB 에 저장된 "아이디, 패스워드 (암호문)"와 일치 여부 확인

Password Matching

Spring Security라는 프레임워크에서 제공하는 비밀번호 암호화 기능을 사용해보자.
일전에 Bean 수동등록 예제로 봤던 PasswordEncoder가 해당 Security에서 제공하는 비밀번호 암호화 메서드이다.
사용자가 입력한 비밀번호를 암호화되어 저장된 비밀번호와 비교하여 일치여부를 확인해주는 기능도 가지고 있어 많이 사용된다.

// 사용예시
// 비밀번호 확인
if(!passwordEncoder.matches("사용자가 입력한 비밀번호", "저장된 비밀번호")) {
		   throw new IllegalAccessError("비밀번호가 일치하지 않습니다.");
 }
  • boolean matches(CharSequence rawPassword, String encodedPassword);
    • rawPassword : 사용자가 입력한 비밀번호
    • encodedPassword : 암호화되어 DB 에 저장된 비밀번호
profile
공부한 내용은 바로바로 기록하자!

0개의 댓글