다른곳에서 사용하기위해 Service로 Hasher.java 생성

import org.springframework.stereotype.Service;

import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;

@Service
public class Hasher {

    public String getHashingValue(String password){     // 받아온 비밀번호를 해시화해서 반환
        try{
            MessageDigest disget = MessageDigest.getInstance("SHA-256");    // 해싱알고리즘에 사용할 인스턴스 생성
            byte[] hash = disget.digest(password.getBytes(StandardCharsets.UTF_8));

            return Base64.getEncoder().encodeToString(hash);
        }catch(NoSuchAlgorithmException e){
            // 알고리즘이 없을때 예외 처리
            throw new RuntimeException("Hashing Failed", e);
        }
    }
}

사용할 서비스에서 불러오기

@Slf4j
@Service
@RequiredArgsConstructor
public class AuthService {

  private final Hasher hasher;    // hasher 선언

  private UserCredentials newUserCredentials (String password, User user){
        // 해싱
        String hashedValue = hasher.getHashingValue(password);

        UserCredentials credential = UserCredentials.
                builder().  // builder 패선을 사용해서 엔티티 생성
                user(user).
                hashedPassword(hashedValue).
                build();

        return credential;
    }

}

댓글남기기