알고리즘

BJ_00_10930_SHA-256 - Java

naksnaks 2022. 1. 21.
반응형

[문제링크]

https://www.acmicpc.net/problem/10930

 

10930번: SHA-256

첫째 줄에 문자열 S가 주어진다. S는 알파벳 대문자와 소문자, 그리고 숫자로만 이루어져 있으며, 길이는 최대 50이다.

www.acmicpc.net


[문제]

문자열 S가 주어졌을 때, SHA-256 해시값을 구하는 프로그램을 작성하시오.


[입력]

첫째 줄에 문자열 S가 주어진다. S는 알파벳 대문자와 소문자, 그리고 숫자로만 이루어져 있으며, 길이는 최대 50이다.

 


[출력]

첫째 줄에 S의 SHA-256 해시값을 출력한다.


[예제 입력 1]

Baekjoon

[예제 출력 1]

9944e1862efbb2a4e2486392dc6701896416b251eccdecb8332deb7f4cf2a857

 


[설명]

이 문제는 SHA-256 문제이다.

MessageDigest를 사용하여 SHA-256 형식으로 암호화한다.

update 메소드를 사용하여 객체 내에 저장된 SHA-256 digest 값을 변경한다

digest 메소드를 호출하여 그 값을 가져온다.

%02x 형식(2자리 16진수 표시)을 사용하여 출력한다.

 

 

백준 알고리즘 10930번 JAVA풀이

 

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진수 표시
		}
	}
}

 

 

 

궁금하신 부분이나 부족한 점은 댓글로 알려주시면 감사하겠습니다.

 

반응형

댓글

💲 추천 글