백준 10930번 SHA-256

Description

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

Input

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

Output

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

Solution

  1. hashlib sha256 함수를 이용하면 문제를 해결할 수 있다.
  2. hashlib.sha256(문자열의 바이트 객체).hexdigest(): 해시 결과 문자열

    • sha256(): SHA-256 해시 객체를 생성해줌
    • hash.update(): hash object를 bytes-like object로 업데이트, m.update(a); m.update(b);m.update(a+b)와 같은 형태로 써도 무방하다.
    • hash.digest()

      • digest: 요약 -> hash 함수를 통과한 이후의 데이터
      • 지금까지 메서드에 전달된 데이터의 digest를 반환
    • hash.hexdigest(): digest가 16진수 숫자만 포함하는 두 배 길이의 문자열 객체로 반환됨

      • 전자 메일이나 기타 바이너리가 아닌 환경에서 안전하게 데이터를 교환하는데 사용
# 내 풀이

import hashlib

data = input()
# encode(): 바이트 객체 불러옴
answer = hashlib.sha256(data.encode()).hexdigest() 
print(answer)

Source