TIL

효준·2024년 12월 4일
0

12월 4일 수요일
AM 알고리즘 풀이
PM 과제 수행

💡 Today Issue

디자인 패턴
Bcrypt

🤔 나의 생각 + 배운 것

디자인 패턴

Bcypt

  • 블로피시 암호에 기반을 둔 암호화 해시 함수이다.
    Rainbow Table 공격 방지를 위해 salt를 통합한 적응형 함수 중 하나이다. 현재까지 사용 중인 가장 강력한 해시 알고리즘 중 하나이다.

  • 반복 횟수를 늘려 연산 속도를 늦출 수 있으므로 연산 능력의 증가에도 brute-force 검ㅅ개 공격에 대한 저항을 유지하게 된다.

Spring에서 Bcrypt 사용

의존성 추가

	implementation 'at.favre.lib:bcrypt:0.10.2'

컴포넌트 생성

    public String encode(String rawPassword) {
        return BCrypt.withDefaults().hashToString(BCrypt.MIN_COST, rawPassword.toCharArray());
    }

    public boolean matches(String rawPassword, String encodedPassword) {
        BCrypt.Result result = BCrypt.verifyer().verify(rawPassword.toCharArray(), encodedPassword);
        return result.verified;
    }

일반적인 패스워드를 암호화 하는 메서드와 기존의 암호화된 패스워드와 입력된 패스워드를 비교하여 검사하는 메서드

Service 단에서 DTO에서 받은 패스워드를 encode메서드를 통해 암호화

 	String rawPassword = memberDto.getPassword();
 	String encodedPassword = passwordEncoder.encode(rawPassword);

🕐회고

새로운 로직을 사용해보니 꽤나 흥미로웠다.

profile
사진은 캣타워가 생겨 포효하는 고양이입니다.

0개의 댓글

관련 채용 정보