본문 바로가기
Programming Language/Java

[암호화] SHA-256 암호화 방법 (알고리즘 소스코드 포함)

by Baest 2021. 9. 6.

메인 프로젝트 진행중에 로그인 부분의 암호화를 담당하게 되었다.

밀린 학습들이 결국 메인 프로젝트를 늪으로 끌고 가는거 같ㄷr.... 띠로리

산을 넘으면 또 다른 산이 기다리고 있지만 그래도 잘 해내고 있다. 

 

아무튼 간단히라도 기록을 남겨두려고 한다!

 


 

1. SHA-256 알고리즘 코드

- 알고리즘 코드는 다양하게 있었고 SHA-256 뿐만 아니라 MD5 도 있었는데 MD5는 암호화 결함이 발견되어 SHA-256 을 많이 사용하는 것으로 알고있다. SHA-256 알고리즘도 다양하기 때문에 다른 알고리즘도 적용해 보는 것을 추천한다.

- SHA-256 은 단방향(암호화만 제공) 알고리즘이니 참고할 것

*hex: 16진수

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
 
public class SHA256 {
 
    public String encrypt(String text) throws NoSuchAlgorithmException {
        MessageDigest md = MessageDigest.getInstance(" SHA-256 ");
        md.update(text.getBytes());
 
        return bytesToHex(md.digest());
    }
 
    private String bytesToHex(byte[] bytes) {
        StringBuilder builder = new StringBuilder();
        for (byte b : bytes) {
            builder.append(String.format("%02x", b));
        }
        return builder.toString();
    }
 
}
 
 
cs

 

 
 

2. Main Class에 알맞게 적용한 코드

- 아래는 VO에서 받아온 정보를 나한테 맞게 약간 수정하였다.

 

3. 비밀번호 및 암호화된 비밀번호 일치 여부

- 콘솔 출력문을 통해 알 수 있듯이 암호화가 진행된 것이 확인 가능하며, 비밀번호 일치 결과가 true 인 것을 알 수 있다.