Spring Security (3) BCrypt 암호화 메소드

castle·2023년 12월 27일
0

시큐리티 암호화


로그인을 진행하면 ID와 Password를 시큐리티에서 받아 검증을 하는데 이때 비밀번호는 단방향 해시 암호화를 진행하여 저장되어 있는 비밀번호와 대조한다.

→ 회원가입시 비밀번호에 대해서 암호화를 진행하여 저장해야 한다.

Bcrypt Password Encoder

Spring Security 프레임워크는 암호화를 위해 Bcrypt Password Encoder 클래스를 제공한다.

  • Bcrypt 해싱함수를 사용해서 Password를 인코딩해주는 메서드와 사용자의 의해 제출된 Password와 저장소에 저장되어 있는 Password의 일치 여부를 확인해주는 메서드를 제공한다.
  • Bcrypt Password Encoder를 Return 하는 메서드를 만들어 @Bean 으로 등록하여 사용하면 된다.

단방향 해시 암호화

  1. 양방향 : 데이터를 암호화하고 그것을 다시 원본 데이터로 되돌릴 수 있는 알고리즘 사용
    1. 대칭키 : 암호화와 복호화에 동일한 키를 사용(동일한 키를 가진 두 사람 사이에서는 통신이 가능)
    2. 비대칭키 : 공개키와 개인키를 사용(공개키는 누구나 사용할 수 있지만, 개인키는 자신만이 가지고 있어야 해독)
  2. 단방향 : (암호화된 값을 다시 원본 데이터로 역으로 되돌릴 수 없는 방식)
    1. 해시 : 입력값을 특정한 길이의 고정된 값으로 변환시키는 알고리즘(원본 값을 알 수 없다)

Security Config 암호화 Bean 추가


@Bean
public BCryptPasswordEncoder bCryptPasswordEncoder() {

    return new BCryptPasswordEncoder(); // BCryptPasswordEncoder return
}

0개의 댓글

관련 채용 정보