English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 문서에서는 파일의 해시 값을 찾고 표시하는 방법을 배웁니다.
이 예제를 이해하려면 다음을 알아야 합니다:파이썬 프로그래밍주제:
해시 함수는 어떤 양의 데이터를 가져와 고정 길이의 비트 문자열을 반환합니다. 함수의 출력은 요약 메시지라고 합니다.
그들은 인증을 위해 암호학에서 널리 사용됩니다. 많은 해시 함수가 있습니다. 예를 들어 MD5SHA-1등을 참조하여 이 페이지를 확인하십시오.암호학에서 해시 함수의더 많은 정보.
이 예제에서, 우리는 파일을 해시 처리하는 방법을 설명하겠습니다. 우리는 SHA를 사용할 것입니다-1해시 알고리즘. SHA-1요약의 길이는160비트.
우리는 파일의 전체 데이터를 한 번에 제공하지 않습니다. 왜냐하면 일부 파일이 매우 크고, 전체 데이터를 메모리에 한 번에 저장할 수 없기 때문입니다. 파일을 작은 블록으로 나누면 프로세스의 메모리 효율성을 높일 수 있습니다.
# 파일의 SHA를 찾는 파이썬 프로그램1메시지 요약 # hashlib 모듈을 가져옵니다 import hashlib def hash_file(filename): """이 함수는 SHA-1해시 이 파일을 전달합니다 """ # 해시 객체를 생성합니다 h = hashlib.sha1() # 파일을 이진 모드로 열기 with open(filename, 'rb') as file: # 파일 끝까지 반복합니다 chunk = 0 while chunk != b'' # 한 번에 읽습니다1024바이트 chunk = file.read(1024) h.update(chunk) # 요약의 16진수 표현을 반환합니다 return h.hexdigest() message = hash_file("track"1.mp3") print(message)
출력 결과
633d7356947eec543c50b76a1852f92427f4dca9
이 프로그램에서, 우리는 파일을 이진 모드로 엽니다. 해시 함수는 hashlib 모듈에서 사용할 수 있습니다. 우리는 파일의 끝까지 while 루프를 사용합니다. 마지막에 도달하면, 빈 바이트 객체를 얻습니다.
각 반복에서, 우리는 파일에서만 읽습니다1024바이트(이 값을 필요에 따라 변경할 수 있습니다)을 업데이트하고, 해시 함수를 업데이트합니다.
마지막으로, hashlib.hexdigest() 메서드를 사용하여 16진수 형식으로 요약 메시지를 반환합니다.