Sha1-Hash aus openssl-Binär-Base64-Wert ableiten

Digital Cinema Packages enthalten Prüfsummen im folgenden Format, wie hier beschrieben :

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

Wie kann ich einen Wert wie IxcfhXNHlw+1bbDFu0kp8KRylpU= und den ursprünglichen sha1-Hash ableiten, der ungefähr wie

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

Mein Anwendungsfall ist, dass es nicht viele Prüfsummenüberprüfungstools gibt, mit denen Sie leicht ein Prüfsummenmanifest vom Typ md5sum validieren können, das diese Binär - / Base64-Werte verwendet, aber es gibt viele Tools, die sha1 validieren. wäre großartig, wenn ich wüsste, wie ich diese Werte umkehren könnte, damit ich ein Skript schreiben könnte, das eine interoperablere Liste von Hashes generiert.

Author: Tandy Freeman, 2018-04-04

1 answers

Beide Werte sind derselbe Hash - dieselben "binären" Bytes, die in zwei verschiedenen Codierungen (Darstellungen) angezeigt werden, und keiner von beiden ist "origineller" als der andere.

(Base64 hat 6 Bits pro Zeichen; hexadezimal alias base-16 hat 4 Bits pro Ziffer. Drei raw bytes, vier Base64 ziffern, sechs hex ziffern sind direkt konvertierbar.)

Fast jede Programmiersprache verfügt über Funktionen zum Codieren/Dekodieren dieser Formate. Zum Beispiel, in den shell-tools:

  • Zu dekodieren Sie Base64 in binäre Rohdaten, verwenden Sie base64 -d oder openssl base64 -d.

  • Um binäre Rohdaten hexadezimal zu codieren, verwenden Sie xxd -p oder 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..|
 1
Author: user1686,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-04-05 04:33:09