linux - Compute base64 encoded hash from a given hash? -


i created file , input random string it.

touch tesseract && echo 'testtesttesttesttest' > tesseract 

now if use openssl compute base64 hash [sha256], run this:

cat tesseract | openssl dgst -sha256 | openssl base64 -a 

which returns me

khn0zglukt0gmzjjyja1mtgzndnhzmy2n2flmmy5yzuwndcwngringe5njc5mziyzwvlntbmmjbintmznjzlytbimdy2mwnlzgo=

now process hash stepwise, as,

cat tesseract | openssl dgst -sha256 > partialhash 

which gives me

(stdin)= 32cb0518343aff67ae2f9c504704db4a9679322eee50f20b53366ea0b0661cef

let hash x. this,

echo '32cb0518343aff67ae2f9c504704db4a9679322eee50f20b53366ea0b0661cef' > partialhash cat partialhash | openssl base64 -a 

i different result. why that?

my reason asking because use binary, hashdeep gives me hashes in form of 32cb0518343aff67ae2f9c504704db4a9679322eee50f20b53366ea0b0661cef , wish convert them base64 encoded format hashdeep not capable of producing base64 output. pipe intermediate hash openssl base64 -a, obtain different result.

what missing? how can convert non-encoded hash x [which 32cb0518343aff67ae2f9c504704db4a9679322eee50f20b53366ea0b0661cef] proper base64 encoded format?

for simplicity purpose, can assume x present in file,
created using echo '32cb0518343aff67ae2f9c504704db4a9679322eee50f20b53366ea0b0661cef' > file

you're not base-64 encoding hash. you're base64-encoding string

(stdin)= 32cb0518343aff67ae2f9c504704db4a9679322eee50f20b53366ea0b0661cef 

(followed newline). note (stdin)= @ beginning. that's part of string. that's going have different value base64 encoding of string 32cb0518343aff67ae2f9c504704db4a9679322eee50f20b53366ea0b0661cef (followed newline).

if goal binary hashes (rather string encodings), use -binary option openssl dgst.

i'm not familiar hashdeep, when "non-encoded hash," that's not it's generating. it's generating hex-encoded hash. looks of you're looking hex-to-base64 converter. can along these lines:

echo '32cb0518343aff67ae2f9c504704db4a9679322eee50f20b53366ea0b0661cef' | xxd -r -p  | base64 

xxd -r -p converts hex-encoded string raw data.

(if you're using openssl dgst, make sure you're using options don't inject (stdin)= on front. version of openssl doesn't this, i'm not flag you'll need.)


Comments

Popular posts from this blog

php - Permission denied. Laravel linux server -

google bigquery - Delta between query execution time and Java query call to finish -

python - Pandas two dataframes multiplication? -