[Problem Solving - Baekjoon] 10930 SHA-256
[Baekjoon Online Judge] 10930 SHA-256
문제
문자열 S가 주어졌을 때, SHA-256 해시값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 문자열 S가 주어진다. S는 알파벳 대문자와 소문자, 그리고 숫자로만 이루어져 있으며, 길이는 최대 50이다.
출력
첫째 줄에 S의 SHA-256 해시값을 출력한다.
예제
- input
Baekjoon
- output
9944e1862efbb2a4e2486392dc6701896416b251eccdecb8332deb7f4cf2a857
분류
- 해시
풀이
문제 파악
- 문제에서 나왔듯이 해싱알고리즘은 SHA-256를 이용하여 해시값을 구함
구현
- 해시알고리즘을 이용하여 구하기
MessageDigest digest = MessageDigest.getInstance("SHA-256");
byte[] hash = digest.digest(S.getBytes("UTF-8"));
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < hash.length; i++) {
String hex = Integer.toHexString(0xff&hash[i]);
if(hex.length() == 1 ) {
hexString.append('0');
}
hexString.append(hex);
}
result = hexString.toString();