0바이트 파일은 어떻게 해시 값을 생성할 수 있나요?

0바이트 파일은 어떻게 해시 값을 생성할 수 있나요?

sha1sum, sha256sum 등으로 해시할 때 0바이트 텍스트 파일이 어떻게 해시를 생성할 수 있나요? 해시 값을 생성하기 위해 프로그램은 어떤 데이터를 해시하고 있습니까?

고마워

Linux의 QuickHash

터미널 명령

답변1

해시 알고리즘은 데이터가 있는지 여부에 관계없이 입력을 읽고 처리합니다. 이는 유효하고 원하는 동작이며 특정 구현이 올바른지 확인하는 데에도 사용됩니다. 이로 인해 모든 주요 알고리즘에 대해 "널 해시"가 발생합니다.

요약하자면 da39a3ee5e6b4b0d3255bfef95601890afd80709는 모든 곳의 빈 파일에 대한 sha1-hash이며 다른 알고리즘의 null 해시에서도 마찬가지입니다.

답변2

Quick Hash의 모든 해시 알고리즘은Merkle-Damgård 건설. 따라서 메시지를 블록 크기의 배수로 채웁니다.

Quick Hash의 알고리즘은 비트 를 추가하고 필요한 1만큼의 0비트를 추가한 다음 마지막으로 메시지 길이를 추가하여 이를 달성합니다.

이를 통해 길이가 0인 메시지를 포함하여 임의 길이의 메시지를 해싱할 수 있습니다.

답변3

(Dennis 및 fixer1234의 답변에 대한 추가 기능?)

간결하게:

$ shasum -a 256 /dev/null e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 /dev/null

모든 0바이트 파일은 동일한 체크섬을 갖습니다.

$ shasum -a 512 /dev/null cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e /dev/null

$ shasum /dev/null da39a3ee5e6b4b0d3255bfef95601890afd80709 /dev/null

$ md5 /dev/null MD5 (/dev/null) = d41d8cd98f00b204e9800998ecf8427e(참고: MD5는 손상되었습니다. '보안 해시'가 아닙니다. 이는 Wikipedia의 MD5 항목에 문서화되어 있습니다.)

따라서 예를 들어 다음 위치에서 파일의 무해성을 확인하려는 경우virustotal.com여기에 나열된 보안 해시 값 중 하나를 사용하면 da39a3ee5e6b4b0d3255bfef95601890afd80709파일이 실제로 0바이트(또는 혼란스럽게도 virustotal이 0바이트 파일인 것처럼 해시하는 폴더)였음을 확신할 수 있습니다.

관련 정보