[Baekjoon] 10930번 : SHA-256
1. 문제
https://www.acmicpc.net/problem/10930
- 해시, 구현 문제
// 문제
문자열 S가 주어졌을 때, SHA-256 해시값을 구하는 프로그램을 작성하시오.
// 입력
첫째 줄에 문자열 S가 주어진다.
S는 알파벳 대문자와 소문자, 그리고 숫자로만 이루어져 있으며,
길이는 최대 50이다.
// 출력
첫째 줄에 S의 SHA-256 해시값을 출력한다.
// 예제 입력 1
Baekjoon
// 예제 출력 1
9944e1862efbb2a4e2486392dc6701896416b251eccdecb8332deb7f4cf2a857
2. 핵심 아이디어
- hashlib의 sha256 함수를 이용하면 SHA 256 해시를 구할 수 있음
- hashlib.sha256(문자열의 바이트 객체).hexdigest() : 해시 결과 문자열
3. Python 문제풀이
import hashlib
s = input()
encoded_s = s.encode()
result = hashlib.sha256(encoded_s).hexdigest()
print(result)
4. Java 문제풀이
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.security.MessageDigest;
class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(s.getBytes());
StringBuilder sb = new StringBuilder();
for (byte b : md.digest()) {
sb.append(String.format("%02x", b));
}
System.out.println(sb.toString());
}
}
댓글남기기