JUST GO

[공통] CryptoUtils 본문

Spring Boot/학습내용

[공통] CryptoUtils

root_go 2022. 11. 8. 11:12

utils 에 CryptoUtils 클래스를 생성해 준다.

// 1. hashSha512 메서드 로직 완성하기
// - input으로 "test1234" 들어오면
// - 이 메서드는 throws 시그니처를 사용하지 않음. 고로 NoSuchAlgorithmException 발생 시 null 반환하도록 조치.
// 2. CryptoUtils 클래스 객체화 못하게 막기
package dev.rootgo.studymemberbbs.utils;

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

public class CryptoUtils {
    public static String hashSha512(String input) {
        try {
            StringBuilder passwordHashBuilder = new StringBuilder();
            MessageDigest md = MessageDigest.getInstance("SHA-512");
            md.update(input.getBytes(StandardCharsets.UTF_8));
            for(byte hashByte : md.digest()){
                passwordHashBuilder.append(String.format("%02x", hashByte));
            }
            return passwordHashBuilder.toString();

        } catch (NoSuchAlgorithmException ignored) {
            return null;
        }
    }
    private  CryptoUtils() {

    }
}
// 비밀번호 해싱
user.setPassword(CryptoUtils.hashSha512(user.getPassword()));

멤버서비스에 다음과 같이 적어준다.