JUST GO
[공통] CryptoUtils 본문
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()));
멤버서비스에 다음과 같이 적어준다.
'Spring Boot > 학습내용' 카테고리의 다른 글
[공통] 이메일로 전송된 링크 클릭시 그 링크에 포함된 ECS(Email, Code, Salt)로 구성된 EmailAuthEntity 와 일치하는 레코드의 'expired_flag' 값을 true 로 수정하는 여정 (0) | 2022.11.09 |
---|---|
[공통] th:fragment (0) | 2022.11.08 |
[공통] 비밀번호 해싱 (1) | 2022.11.08 |
[공통] 암호화 (0) | 2022.11.08 |
[공통] 전반적인 흐름 (0) | 2022.11.08 |