파이썬 체크섬

Vaibhhav Khetarpal 2023년1월30일
  1. hashlib.md5() 함수를 사용하여 Python에서 MD5 파일의 체크섬 생성 및 확인
  2. os 모듈을 사용하여 Python에서 MD5 파일의 체크섬 생성 및 확인
파이썬 체크섬

성공적이고 인기 있는 프로그래밍 언어와 관련하여 해싱은 필수 요소임이 입증되었습니다. 이러한 해싱 구성 요소 중 하나는 체크섬이라고 하는 일상적인 프로그래밍에서 정말 중요하고 상당히 관련이 있습니다.

이 기사에서는 체크섬과 MD5 파일용으로 체크섬을 생성하는 방법에 대해 설명합니다.

‘체크섬’은 파일의 오류 감지를 위해 Python에서 사용됩니다. 그들은 주어진 파일에서 데이터의 유효성을 검사하는 기본 작업을 가지고 있습니다. 매우 유사하지만 결정론적이라는 점에서 Python에서 제공하는 내장 해싱과 다릅니다.

hashlib.md5() 함수를 사용하여 Python에서 MD5 파일의 체크섬 생성 및 확인

hashlib 모듈은 여러 다른 메시지 다이제스트 및 보안 해시 알고리즘에 대한 공통 인터페이스를 구현하는 데 사용됩니다. 이 방법을 성공적으로 구현하려면 hashlib 모듈을 Python 코드로 가져와야 합니다.

여기서는 주로 hashlib.md5() 함수를 update()hexdigest() 함수와 함께 사용하여 각각 16진수 값을 업데이트하고 반환합니다.

다음 코드는 hashlib.md5() 함수를 사용하여 Python에서 MD5 파일의 checksum을 생성하고 확인합니다.

import hashlib


def md5(file1):
    md5h = hashlib.md5()
    with open(file1, "rb") as f:
        for chunk in iter(lambda: f.read(4096), b""):
            md5h.update(chunk)
    return md5h.hexdigest()

이 코드는 주어진 다이제스트를 나타내는 hex string을 반환한다는 점에 유의해야 합니다. digest() 함수만 사용하면 압축된 바이트가 반환됩니다. 프로그래머는 원하는 출력을 염두에 두고 이러한 기능을 사용할 수 있습니다.

os 모듈을 사용하여 Python에서 MD5 파일의 체크섬 생성 및 확인

Python의 os 모듈은 운영 체제와 상호 작용하는 데 도움이 되는 여러 기능에 대한 액세스를 제공합니다. os 모듈은 방대하고 여러 모듈을 포함하며 모두 다른 목적을 수행하는 데 사용됩니다.

여기에서 임의의 이미지를 다운로드한 다음 생성한 파이썬 함수를 사용하여 MD5에 대한 체크섬을 계산한 다음 마지막으로 Unix 명령의 도움으로 생성된 체크섬과 비교합니다.

get_checksum() 함수에 대한 함수 정의:

import hashlib


def get_checksum(filename, hash_function):
    """Generate checksum for file based on hash function (MD5).

    Args:
        filename (str): Path to file that will have the checksum generated.
        hash_function (str):  Hash function name - supports MD5

    Returns:
        str`: Checksum based on Hash function of choice.

    Raises:
        Exception: Invalid hash function is entered.

    """
    hash_function = hash_function.lower()

    with open(filename, "rb") as f:
        bytes = f.read()
        if hash_function == "md5":
            readable_hash = hashlib.md5(bytes).hexdigest()

        else:
            Raise("{} is an invalid hash function. Please Enter MD5 value")

    return readable_hash

다음 코드는 os 모듈과 함께 위에서 정의한 get_checksum() 함수를 사용하여 Python에서 MD5 파일의 checksum을 생성하고 확인합니다.

import os

pic = "g_circle-300x300.png"
resmd5 = get_checksum(pic, "md5")
os.system("md5 {}".format(pic))
print("Hash Function: MD5 - Filename: {}".format(resmd5))

MD5가 널리 사용되지만 최근에 파손된 것으로 밝혀졌으며 많은 결함이 포함되어 있습니다. 파일의 체크섬을 생성하고 확인하는 프로세스는 매우 위험할 수 있으며 이러한 목적으로 MD5 파일을 사용하지 않는 것이 좋습니다.

또한 MD5 파일은 암호화된 보안이 필요한 경우 최고가 아니기 때문에 실제로 최선이 아닙니다.

Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn