메인 프로젝트 진행중에 로그인 부분의 암호화를 담당하게 되었다.
밀린 학습들이 결국 메인 프로젝트를 늪으로 끌고 가는거 같ㄷ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 인 것을 알 수 있다.