用途:
主要用于数据摘要。它也可以用于数据签名以及验证签名。
用法:
openssl dgst [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1 ] [-c] [-r] [-rand file] [-d ] [-hex]
[-binary] [-sign filename] [-verify filename] [-prverify filename] [-keyform filename] [-out filename]
[-signature filename ] [-sigopt nm:v] [-hmac key] [-mac alg] [-macopt nm:v] [-passin arg] [-engine e] [file...]
选项说明:
-md5:默认选项,用md5算法进行摘要。
-md4:用md4算法进行摘要。
-md2:用md2算法进行摘要。
-sha1:用sha1算法进行摘要。
-sha:用sha算法进行摘要。
-mdc2:用mdc2算法进行摘要。
-ripemd160:用ripemd160算法进行摘要。
-dss1:用dss1算法进行摘要。
-c:打印出两个哈希结果的时候用冒号来分隔开。仅仅设置了[-hex]的时候有效。
-r:用coreutils格式来输出摘要值。
-rand:产生随机数种子的文件。
-d:打印出BIO调试信息值。
-hex:显示ASCII编码的十六进制摘要结果,默认选项。
-binary:以二进制的形式来显示摘要结果值。
-sign filename:用filename中的私钥文件对数据进行签名。
-verify filename:用filename中的公钥文件对数据进行验证签名。输出结果仅仅是"Verification OK" 和 "Verification Failure"中的一种。
-prverify filename:用filename中的私钥文件对数据进行验证签名。
-keyform arg:filename中的证书格式,该命令中仅仅支持PEM以及ENGINE格式。
-out filename:输出对象,默认为标准输出。
-signature filename:实际需要验证的签名值的位置。
-sigopt nm:v:签名或验证签名的操作中,签名算法参数的选项值。
-hmac key:用密钥“key”创建一个哈希值MAC。
-mac alg:创建一个MAC(密钥消息验证代码)。大多数流行的摘要算法是HMAC算法,但是还有一些基于hash的其他算法,例如B
-macopt nm:v:MAC算法参数,在B<-mac>密钥中指定。下面的选项也支持B
B
-passin arg:证书私钥的口令值。
0engine e:采用引擎e来运算。
file:你要哈希的文件,如果没有指定,就使用标准输入。
注意:
对所有新的应用程序来说,只哎哟算法默认为SHA1。其他的摘要算法也被广泛的使用。
如果你希望用DSA算法来进行签名或验证,就必须要使用DSS摘要算法。
在某些签名算法中要请求随机数的来源文件,例如RSA。
签名或验证选项仅仅值用于一个文件被签名了的或验证了的。
实例:
openssl dgst c:\server.pem
运行此命令后文件的md5值摘要结果会在屏幕打印出来,此结果为摘要结果转换为ASCII码后的值:
MD5(c:\server.cer)= 4ace36445f5ab4bbcc2b9dd55e2f0e3a
openssl dgst –binary c:\server.pem
结果为二进制乱码。
openssl dgst –hex –c c:\server.pem
结果由:分开,如下:
MD5(c:\server.cer)= 4a:ce:36:44:5f:5a:b4:bb:cc:2b:9d:d5:5e:2f:0e:3a
openssl dgst –sign privatekey.pem –sha1 –keyform PEM –c c:\server.pem
将文件用sha1摘要,并用privatekey.pem中的私钥签名。