[Spring] 비밀번호 암호화 SHA-256 / MD5

2022. 5. 24. 15:17 Spring Framework/Spring security
import java.security.MessageDigest;

public class EncryptionUtils {

    public static String encryptSHA256(String s) {
        return encrypt(s, "SHA-256");
    }

    public static String encryptMD5(String s) {
        return encrypt(s, "MD5");
    }

    public static String encrypt(String s, String messageDigest) {
        try {
            MessageDigest md = MessageDigest.getInstance(messageDigest);
            byte[] passBytes = s.getBytes();
            md.reset();
            byte[] digested = md.digest(passBytes);
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < digested.length; i++) sb.append(Integer.toString((digested[i]&0xff) + 0x100, 16).substring(1));
            return sb.toString();
        } catch (Exception e) {
            return s;
        }
    }
}

 

 

회원가입을 구현할때 SHA-256 알고리즘이나 MD5 알고리즘을 지정할 수 있다. 회원의 password를 암호화 해준다.

   SHA-256 알고리즘이 MD5 알고리즘보다 좀 더 강력하다. 

 

UserService

    public UserDetailDto create(UserCreateDto user){ //회원가입 : 회원정보를 DB에 저장
        User entity =mapper.map(user, User.class);
        entity.setUserPassword(EncryptionUtils.encryptMD5(user.getUserPassword()));
        entity.setStatus(true);
        entity = userRepository.save(entity);
        return mapper.map(entity , UserDetailDto.class);
    }

 

 

EncryptionUtils.encryptMD5(패스워드)  로 암호화가 가능하다.

 

출처 : https://1-7171771.tistory.com/82?category=885255