Primeiro, pego uma string codificada em base64 e a decodifico:
local base64_str="OQbb8rXnj/DwvglW018uP/1tqldwiJMbjxBhX7ZqwTw="
echo "${base64_str}" | base64 --decode > foo.txt
O tamanho do arquivo binário é 32 bytes com base em:wc -c < foo.txt
Eu costumo xxd
codificar o valor no arquivo para o formato hexadecimal:
xxd -p ./foo.txt ./foo.hex.txt
O valor hexadecimal no arquivo foo.hex.txt é:
3906dbf2b5e78ff0f0be0956d35f2e3ffd6daa577088931b8f10615fb66a
c13c
O tamanho do arquivo hash codificado é de 66 bytes usandowc -c < foo.hex.txt
Gostaria de pegar a string base64 e convertê-la para hexadecimal de modo que ela permaneça uma string de 32 bytes que eu possa usar com o openssl para criptografar e descriptografar usando cifras aes-256.
local iv_hex=$(base64_to_hex "${iv}")
local key_hex=$(base64_to_hex "${key}")
openssl enc -aes-256-ctr -K "${key_hex}" -iv "${iv_hex}" -in "${input_file}" -out "${output_file}"