BAEKJOON #10930) SHA-256 | Python

    반응형
     

    10930번: SHA-256

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

    www.acmicpc.net

    단순한 문제입니다. 주어진 문자열의 해시값만 출력하면 됩니다. 하지만 저는 2번 틀렸습니다. 그 이유는 sys 라이브러리의 stdin을 이용하면 줄바꿈까지 입력값으로 들어갑니다. 따라서 입력값이 아주 조금만 달라져도 해시값은 완전히 바뀌기 때문에 틀릴 수 밖에 없습니다.

    따라서 stdin을 이용하려면 줄바꿈을 없애서 해쉬값을 만들던지, 느린 input()함수를 사용하던지 해야 합니다.

    저는 그냥 input()함수를 사용하였습니다.

     

    hash값 생성을 위해서는 파이썬의 haslib 라이브러리를 이용합니다. hashlib.sha256() 함수에 encode한 문자열을 넣어주면 객체가 반환되는데, 반환된 객체의 hexdigest() 메서드를 사용하여 출력하면 16진수의 다이제스트(해시함수 결과값)이 출력됩니다.

     

    hashlib — Secure hashes and message digests — Python 3.10.5 documentation

    hashlib — Secure hashes and message digests Source code: Lib/hashlib.py This module implements a common interface to many different secure hash and message digest algorithms. Included are the FIPS secure hash algorithms SHA1, SHA224, SHA256, SHA384, and

    docs.python.org

    # -*- coding: utf-8 -*-
    # boj 10930 SHA-256
    
    import hashlib
    
    str = input()
    print(hashlib.sha256(str.encode('utf-8')).hexdigest())
    반응형

    댓글