Openssl 使用签名验证文件

Openssl 使用签名验证文件

我有这种格式的文件签名。这是什么格式?如何使用 openssl 命令行验证文件

--=</Begin Signed File Fingerprint\>=--
Fingerprint Length: 000876
Key: label_4096
Hash: sha512
Signature: LJh6yt9PkAu4UGL7X0wCBmgfKDjA4Hv1i97K/glPmfJvB6pNPxrBDKPrVgsz7qNdP+mfOazHZcHmQyAAmpHoG/ztJzqbcMOFK8dYD8lqqu4O9O1Guhmx9WP3E47BI/Sby1OSqAeEu7fWsp+i3fUYeOujozBQ7oKULEIvxh61L/D9vDzRmm3UwD52I5g/PNwv1t4Llmqxg25uE9orn2u8cg40qmK1wyZiztOyIO8a4v42aEzRqxp9g//lN/+rsn9Ci4tz6XbIBPDqpYyXgYCtMf0f3N5QijlSt2bi97vzOVDFiyqAAIZL827tW+wFwaIMpmPZAtBBfSEBhY8VUlEd9fiZVuPo/RvC8NLgZphNa2PhergItu1MoKKv/fuwh8qVmAtMCp1FreTtky4hXiaxrq05Aun8Iyyh/lEx1t8M4zBpRnvCEexx0Htj24800bi4fpKacIMQh7HD0oC+tNCH3vlmRihd4ZZ2D8LrHnH+fHtdCpHQJoKYfobIbskQpVvK7eekyuG0lHPhAVwG4+Dh8Re/PugKPgmg0EcT0bp7g4RaiUDMzkD/zlRJSBM3pQX98EJFy1U38tkYkTO1m5aFUIgsy8YADpMfCyLjzJFA7O0E9SOk3dXCpYQ9zL9hN8MStJluNvhJBEjDq470iWPeOo3xApdeZr3YhEPGVxxuFL0=
Fingerprint Length: 000876
--=</End Signed File Fingerprint\>=--

如果我采用签名:部分并使用命令

openssl dgst -sha512 -verify -inkey key.pub -signature <signature content in the above file> <filetoverify>

它验证了。如何让 openssl 直接读取文件

答案1

如果您使用的是 Linux,则应该能够在命令行中使用 grep 和 cut 执行此操作。这将从文本文件中获取签名值:

-signature `cat sigfile.sig | grep  'Signature: ' | cut -d: -f2-`

最终命令将是这样的

openssl dgst -sha512 -verify -inkey key.pub -signature `cat sigfile.sig | grep  'Signature: ' | cut -d: -f2-` filetoverify 

可能有更简化的方法来实现这一点,但我对 openssl 并不太熟悉。

相关内容