<TIL>/BaekJoon_문제풀이
[10930번]_SHA-256
<Kokheejin>
2021. 5. 4. 01:19
문제제목: SHA-256
문제난이도: 하
유형: 해시, 구현
적정풀이시간: 15분
문제
문자열 S가 주어졌을 때, SHA-256 해시값을 구하는 프로그램을 작성하시오.
입력 |
첫째 줄에 문자열 S가 주어진다. |
출력 |
첫째 줄에 S의 SHA-256 해시값을 출력한다. |
입력1 | 출력1 |
Baekjoon | 9944e1862efbb2a4e2486392dc6701896416b251eccdecb8332deb7f4cf2a857 |
풀이 아이디어
파이썬의 기본 라이브러리인 hashlib을 이용한다.
여기서, SHA256이란.
블록체인에서 가장 많이 채택하여 사중중인 것으로,
256비트로 구성되어 있으며, 64자리 문자열을 반환한다.
즉, 2의 256제곱(엄청 큰 수...)만큼의 경우의 수가 만들어질 수 있다.
경우의 수가 너무 많기 때문에 무차별적 대입에 있어 매우 안전하다고 볼 수 있다.
import hashlib을 통해 해당 라이브러리를 사용할 수 있다.
어떤 문자열을 SHA256으로 변환하려면,
hashlib.sha256(문자열.encode())를 통해 sha256화 한 뒤,(sha256해시객체가 생성됨)
이를 다시 .hexdigest()를 호출하여 변환한다.(digest는 요약을 의미한다.) (해시결과 문자열이 반환됨)
이를 통해 지금까지 공급된 데이터의 연결에 대한 요약을 요청하는 것이다.
나의 풀이
import hashlib
input_data = input()
encoded_data = input_data.encode()
result = hashlib.sha256(encoded_data)
print(result)
result_r = result.hexdigest()
print(result_r)
개선된 코드
from hashlib import *
print(sha256(input().encode()).hexdigest())