12월 4일 수요일
AM 알고리즘 풀이
PM 과제 수행
디자인 패턴
Bcrypt
블로피시 암호에 기반을 둔 암호화 해시 함수이다.
Rainbow Table 공격 방지를 위해 salt를 통합한 적응형 함수 중 하나이다. 현재까지 사용 중인 가장 강력한 해시 알고리즘 중 하나이다.
반복 횟수를 늘려 연산 속도를 늦출 수 있으므로 연산 능력의 증가에도 brute-force 검ㅅ개 공격에 대한 저항을 유지하게 된다.
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;
}
일반적인 패스워드를 암호화 하는 메서드와 기존의 암호화된 패스워드와 입력된 패스워드를 비교하여 검사하는 메서드
String rawPassword = memberDto.getPassword();
String encodedPassword = passwordEncoder.encode(rawPassword);
새로운 로직을 사용해보니 꽤나 흥미로웠다.