CS 지식/암호학_보안

SHA-256 암호화

naksnaks 2022. 1. 21.
반응형

SHA-256은 Secure Hash Algorithm 의 약자로 256비트로 구성되어 64자리 문자열을 반환한다.

단방향 암호화 방식을 사용하기 때문에 복호화가 불가능합니다. 그로 인해 속도가 빠르다.

사용 예시로는 비밀번호 확인과정이 있다.

 

Java에서 SHA-256을 사용하기 위해서는 MessageDigest를 사용해야 한다.

MessageDigest.getInstance(""SHA-256")을 사용하여 SHA-256을 사용한다 선언한다.

update 메소드를 이용하여 객체에 원하는 문자열을 바이트의 형식으로 넣는다.

digest 메소드를 호출하면 그 값을 가져올 수 있다.

 

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Main {

	public static void main(String[] args) throws NoSuchAlgorithmException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String s = br.readLine();
		
		//SHA-256 형식으로 암호화
		MessageDigest md = MessageDigest.getInstance("SHA-256");
		//update() 메소드를 호풀할 때 마다 객체 내에 저장된 SHA-256 digest 값이 계속해서 갱신된다.
		md.update(s.getBytes());
		//digest()메소드를 호출하면 그 값을 가져올 수 있다.
		for(byte b: md.digest()) {
			System.out.printf("%02x", b);	//%02x : 2자리 16진수 표시
		}
	}
}
반응형

댓글

💲 추천 글