如何仅从命令行获取哈希?

时间:2019-03-29 13:05:22

标签: hash openssl

当我尝试使用openssl共享某些文件时,我得到的输出文件内容以“ SHA512(in.txt)= 090c ...”开头。

我通过命令尝试了-r,-binary不同的选项

这是我正在使用的命令 css

问题是:如何获取仅包含哈希的文件,而没有起始注释?

2 个答案:

答案 0 :(得分:2)

awk的默认定界符是空格字符,如果文件名中包含空格,则接受的答案将不起作用。您可以使用-F的{​​{1}}标志(字段分隔符)覆盖默认的定界符,但是如果文件名中存在相等的空格,那也将不起作用。使用默认定界符打印最后一列应适用于所有这些极端情况。 = awk变量存储字段数,可直接用于打印最后一列,该列应始终为哈希。

$NF

https://linux.die.net/man/1/awk

答案 1 :(得分:0)

如果文件名不包含空格,则只能使用awk打印第二列:

openssl dgst -sha512 -out in.txt | awk '{print $2}' > out.txt

或者(看起来好像不是跨平台的),您可以尝试管道或从stdin中读取:

openssl dgst -sha512 -out out.txt < in.txt
cat in.txt | openssl dgst -sha512 -out out.txt

这对我有效(Mac OS X)。