我正在使用消息验证代码散列文件,然后我需要在base64中对文件散列进行编码。为此,我使用OpenSSL如下:
#Create HMAC-SHA2 hash from file
filehash=`mac -a sha256_hmac -k private.key $filename`
##base64 encode filehash
filehash_64=`echo "$filehash" | /usr/sfw/bin//openssl enc -base64 | sed 's/^.*= //'`
问题是OpenSSL输出原始哈希和编码哈希,所以我使用SED来分割字符串并获取编码部分。但是,当我测试它时,它不会分裂。
编码的filehash
YmUzMjA1NzE2MzIyZDYwZWN YTU5MmRiMGUxYWVjZTk3OQo=
我想要的只是:
YTU5MmRiMGUxYWVjZTk3OQo=
我是否遗漏了SED代码中的内容,或者我的管道错误了?
sed 's/^.*= //'`
答案 0 :(得分:2)
您可以使用此sed命令。
sed 's/^.* //'
示例:
$ echo 'YmUzMjA1NzE2MzIyZDYwZWN YTU5MmRiMGUxYWVjZTk3OQo=' | sed 's/^.* //'
YTU5MmRiMGUxYWVjZTk3OQo=
答案 1 :(得分:0)
这个awk命令应该可以工作
awk '{print $2}'