【发布时间】:2014-09-01 20:44:37
【问题描述】:
我正在使用消息验证码对文件进行哈希处理,然后我需要在 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 拆分字符串并获取编码部分。但是,当我对此进行测试时,它并没有分裂。
编码文件哈希
YmUzMjA1NzE2MzIyZDYwZWN YTU5MmRiMGUxYWVjZTk3OQo=
我想要的是这个:
YTU5MmRiMGUxYWVjZTk3OQo=
我是否遗漏了 SED 代码中的某些内容,还是我的管道错误?
sed 's/^.*= //'`
【问题讨论】:
-
两者都是独立的行吗?
-
不,由于某种原因,它们在同一输出行上,此处的格式已将它们放在两行上
-
查看我的编辑,两个字符串都由 whitepace 分隔
-
你在空格前匹配了
=,但它不存在,这就是问题所在。 -
你能给我新的正则表达式@LevLevitsky