openssl-dgst
名字
openssl-dgst – perform digest operations
概要
openssl dgst|digest [-digest] [-list] [-help] [-c] [-d] [-debug] [-hex] [-binary] [-xoflen length] [-r] [-out filename] [-sign filename|uri] [-keyform DER|PEM|P12|ENGINE] [-passin arg] [-verify filename] [-prverify filename] [-signature filename] [-sigopt nm:v] [-hmac key] [-mac alg] [-macopt nm:v] [-fips-fingerprint] [-engine id] [-engine_impl id] [-rand files] [-writerand file] [-provider name] [-provider-path path] [-propquery propq] [file ...]
描述
此命令以十六进制形式输出所提供文件的消息摘要,并使用消息摘要生成和验证数字签名。
通用名称 openssl dgst 可与选项指定的算法的一起使用。默认摘要算法为 sha256。支持的摘要算法名称也可用作子命令名称。要查看支持的算法列表,请使用 openssl list -digest-algorithms
选项
- -help
Print out a usage message.
-
-digest
指定要使用的摘要算法名,可用的算法看下面的-list选项
-
-list
打印支持的摘要算法列表
-
-c
Print out the digest in two digit groups separated by colons, only relevant if the -hex option is given as well.
以冒号分隔的双数字组打印摘要,仅跟-hex选项一起使用才有效。 -
-d, -debug
Print out BIO debugging information.
-
-hex
以hex dump格式输出摘要,这是普通digest(非签名)的默认格式,详细情况参考NOTES部分
-
-binary
以二进制格式输出摘要或签名
-
-xoflen length
设置 XOF 算法(如 shake128 和 shake256)的输出长度。签名操作不支持此选项。
对于 OpenSSL providers,需要为 shake 算法设置此值,因为以前的默认值仅设置为最大安全强度的一半。
为了确保 128 位的最大安全强度,shake128 的 xoflen 应至少设置为 32(字节)。为了与以前版本的 OpenSSL 兼容,可以将其设置为 16,导致安全强度仅为 64 位。
为了确保 256 位的最大安全强度,shake256 的 xoflen 应至少设置为 64(字节)。为了与以前版本的 OpenSSL 兼容,可以将其设置为 32,导致安全强度仅为 128 位。 -
-r
以coreutils格式输出摘要,打包换行。用于像sha1sum这样的程序。
-
-out filename
输出的文件名,默认为standard output.
-
-sign filename|uri
使用给定的私钥对摘要进行数字签名。请注意,此选项不支持 Ed25519 或 Ed448 私钥, 如需要请使用 openssl-pkeyutl(1) 命令代替。
-
-keyform DER|PEM|P12|ENGINE
用于签名的key的格式,没有默认值。 See openssl-format-options(1) for details.
-
-sigopt nm:v
在签名或验签操作期间传递给签名算法的选项。这些names和values是算法特定的,关于Signature parameters的文档记录请参考provider-signature(7)
-
-passin arg
输入私钥的密码源,参考openssl-passphrase-options(1).
-
-verify filename
指定一个公钥文件并使用这个公钥进行验签,输出是”Verified OK” or “Verification Failure”。
-
-prverify filename
指定一个私钥并使用这个私钥进行验签
-
-signature filename
指定要验证的签名文件
-
-hmac key
使用指定的key创建一个hashed MAC码
与使用此命令行选项相比,应优先使用 openssl-mac(1) 命令。
-
-mac alg
创建 MAC(keyed Message Authentication Code)。最流行的 MAC 算法是 HMAC(hash-based MAC),但也有其他不基于哈希的 MAC 算法,例如 gost-mac 算法,由 gost 引擎支持。MAC 密钥和其他选项应通过 -macopt 参数设置。
与使用此命令行选项相比,应优先使用 openssl-mac(1) 命令。 -
-macopt nm:v
可以传递给MAC算法(-mac指定)的选项。以下选项是HMAC和gost-mac同时支持的:
- key:string 将 MAC 密钥指定为字母数字字符串(只使用可打印字符)。字符串长度必须符合 MAC 算法的任何限制,例如 gost-mac 的长度必须恰好为 32 个字符。 - hexkey:string 以十六进制形式指定 MAC key(two hex digits per byte)。密钥长度必须符合 MAC 算法的任何限制,例如 gost-mac 的长度必须恰好为 32 个字符。
与使用此命令行选项相比,应优先使用 openssl-mac(1) 命令。
-
-fips-fingerprint
使用特定密钥为某些 OpenSSL-FIPS 操作计算 HMAC。
-
-rand files, -writerand file
See “Random State Options” in openssl(1) for details.
-
-engine id
See “Engine Options” in openssl(1). This option is deprecated.
The engine is not used for digests unless the -engine_impl option is used or it is configured to do so, see “Engine Configuration Module” in config(5).
-
-engine_impl id
When used with the -engine option, it specifies to also use engine id for digest operations.
-provider name
-provider-path path -
-propquery propq
See “Provider Options” in openssl(1), provider(7), and property(7).
-
file …
需要签名的file或files.如果没有文件指定则使用标准输入。openssl dgst命令不使用-in选项指定输入文件,而是输入文件名放在命令行的结尾。
注意
可用的摘要机制将取决于构建 OpenSSL 时使用的选项。可以使用 openssl list -digest-algorithms 命令列出它们。
新的或agile的应用程序应该使用 SHA-256。其他摘要,特别是 SHA-1 和 MD5,仍然广泛用于与现有格式和协议进行互操作。
签名文件时,此命令将根据私钥的 ASN.1 信息自动确定用于签名的算法(RSA、ECC 等)。验证签名时,它仅处理 RSA、DSA 或 ECDSA 签名本身,而不处理 x.509、CMS 和 S/MIME 等格式中用于标识signer and algorithm的相关数据(意思是签名算法由私钥决定,而不管证书的算法信息?)。
某些签名算法需要随机数源,特别是 ECDSA 和 DSA。
仅当要签名或验证单个文件时,才应使用signing and verify选项。
无法使用 openssl 验证十六进制签名。相反,在验证之前,请使用“xxd -r”或类似程序将十六进制签名转换为二进制签名。
与 -hmac、-mac 和 -macopt 命令行选项相比,应优先使用openssl-mac(1) 命令。
Views: 0
发表回复
要发表评论,您必须先登录。