openssl 바이너리 base64 값에서 sha1 해시 파생

openssl 바이너리 base64 값에서 sha1 해시 파생

디지털 시네마 패키지에는 설명된 대로 다음 형식의 체크섬이 포함되어 있습니다.여기:

$ openssl sha1  -binary 'dcpfile.xml' |openssl base64
IxcfhXNHlw+1bbDFu0kp8KRylpU=

IxcfhXNHlw+1bbDFu0kp8KRylpU=다음과 같은 값을 취하고 원래 sha1 해시를 파생하려면 어떻게 해야 합니까 ?

$ openssl sha1 'dcpfile.xml' 
SHA1(dcpfile.xml)= 23171f857347970fb56db0c5bb4929f0a4729695

내 사용 사례는 이러한 바이너리/base64 값을 사용하는 md5sum 유형 체크섬 매니페스트를 쉽게 검증할 수 있는 체크섬 검증 도구가 많지 않지만 sha1을 검증하는 도구가 많기 때문에 알고 있으면 좋을 것입니다. 보다 상호 운용 가능한 해시 목록을 생성하는 스크립트를 작성할 수 있도록 이러한 값을 바꾸는 방법.

답변1

두 값 모두같은 해시– 동일한 "바이너리" 바이트가 두 가지 다른 인코딩(표현)으로 표시되며 어느 쪽도 다른 쪽보다 "원본"이 아닙니다.

(Base64는 문자당 6비트를 가지며, 16진수(일명 base-16)는 숫자당 4비트를 갖습니다. 원시 바이트 3개, Base64 숫자 4개, 16진수 6개를 직접 변환할 수 있습니다.)

거의 모든 프로그래밍 언어에는 이러한 형식을 인코딩/디코딩하는 기능이 있습니다. 예를 들어 쉘 도구에서는 다음과 같습니다.

  • Base64를 원시 바이너리 데이터로 디코딩하려면 base64 -d또는 를 사용하세요 openssl base64 -d.

  • 원시 이진 데이터를 16진수로 인코딩하려면 xxd -p또는 를 사용합니다 hexdump.

$ echo 23171f857347970fb56db0c5bb4929f0a4729695 | xxd -r -p | base64
IxcfhXNHlw+1bbDFu0kp8KRylpU=

$ echo IxcfhXNHlw+1bbDFu0kp8KRylpU= | base64 -d | hd
00000000  23 17 1f 85 73 47 97 0f  b5 6d b0 c5 bb 49 29 f0  |#...sG...m...I).|
00000010  a4 72 96 95                                       |.r..|

관련 정보