首先,我获取一个 base64 编码的字符串并对其进行解码:
local base64_str="OQbb8rXnj/DwvglW018uP/1tqldwiJMbjxBhX7ZqwTw="
echo "${base64_str}" | base64 --decode > foo.txt
二进制文件的大小为 32 字节,基于:wc -c < foo.txt
我使用xxd
将文件中的值编码为十六进制格式:
xxd -p ./foo.txt ./foo.hex.txt
文件 foo.hex.txt 中的十六进制值为:
3906dbf2b5e78ff0f0be0956d35f2e3ffd6daa577088931b8f10615fb66a
c13c
编码哈希文件的大小为 66 字节,使用wc -c < foo.hex.txt
我想将 base64 字符串转换为十六进制,使其保留为 32 字节字符串,以便我可以与 openssl 一起使用 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}"