sha1sum, sha256sum 등으로 해시 될 때 0 바이트 텍스트 파일이 어떻게 해시를 생성 할 수 있습니까? 프로그램이 해시 값을 생성하기 위해 해싱하는 데이터는 무엇입니까?
고마워
sha1sum, sha256sum 등으로 해시 될 때 0 바이트 텍스트 파일이 어떻게 해시를 생성 할 수 있습니까? 프로그램이 해시 값을 생성하기 위해 해싱하는 데이터는 무엇입니까?
고마워
답변:
해시 알고리즘은 데이터가 있더라도 입력을 읽고 처리합니다. 이것은 유효하고 원하는 동작이며 특정 구현이 올바른지 확인하는 데에도 사용됩니다. 이로 인해 모든 주요 알고리즘에 대해 "널 해시"가 발생합니다.
요약하자면 : da39a3ee5e6b4b0d3255bfef95601890afd80709는 어디에서나 빈 파일의 sha1 해시이며 다른 알고리즘의 null 해시에서도 마찬가지입니다.
Quick Hash의 모든 해시 알고리즘은 Merkle–Damgård 구성 입니다. 따라서 메시지를 블록 크기의 배수로 채 웁니다.
Quick Hash의 알고리즘은 1
비트, 0
필요한만큼의 비트 및 메시지 길이 를 추가하여이를 달성합니다 .
이를 통해 길이가 0 인 메시지를 포함하여 임의 길이의 메시지를 해싱 할 수 있습니다.
(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 바이트 파일 인 것처럼 해시됩니다.)