锋影

email:[email protected]

如果你认为本系列文章对你有所帮助,请大家有钱的捧个钱场,点击此处赞助,赞助额0.1元起步,多少随意

 

 

本文主要介绍OpenSSL 摘要计算命令。 
ref: 
http://blog.csdn.net/as3luyuan123/article/details/14046375

OpenSSL 命令详解(二)——摘要算法、签名、验签

用什么摘要算法指令代替时,默认使用该算法,但也可以指定其他算法。

OpenSSL 命令详解(二)——摘要算法、签名、验签

使用指令 openssl dgst - 
dgst指令 可以用其他摘要算法指令(如md4\md5\sha1…)代替,含义一样 
OpenSSL 命令详解(二)——摘要算法、签名、验签

计算摘要值

未指定特定摘要算法时,默认使用md5算法。 
用法:

openssl dgst [-算法名称] [-其他选项] inputfile

OpenSSL 命令详解(二)——摘要算法、签名、验签

支持的摘要算法:

-md5:默认选项,用md5算法进行摘要。

-md4:用md4算法进行摘要。

-mdc2:用mdc2算法进行摘要。

-sha1:用sha1算法进行摘要。

-sha:用sha算法进行摘要。

-sha224:用sha算法进行摘要。

-ripemd160:用ripemd160算法进行摘要。

-dss1:用dss1算法进行摘要。

-dss1:用whirlpool算法进行摘要。

OpenSSL 命令详解(二)——摘要算法、签名、验签

其他选项含义

-out file:输出到指定文件

-c:打印出两个哈希结果的时候用冒号来分隔开。仅仅设置了[-hex]的时候有效。

-r:用coreutils格式来输出摘要值。

-rand file:产生随机数种子的文件(没发现产生实际效果)

-d:打印出BIO调试信息值。

-hex:显示ASCII编码的十六进制摘要结果,默认选项。

-binary:以二进制的形式来显示摘要结果值。

OpenSSL 命令详解(二)——摘要算法、签名、验签

签名验签

签名的一般过程:先对数据进行摘要计算,然后对摘要值用私钥进行签名。

RSA**签名验签

1.这里演示以RSA私钥签名为例。因此先生成RSA**对。

openssl genrsa -out rsa_private.key 
(省略参数设置,使用默认值,模数:1024) 
OpenSSL 命令详解(二)——摘要算法、签名、验签

由公钥导出私钥。 
openssl rsa -in rsa_private.key -pubout -out rsa_public.key 
OpenSSL 命令详解(二)——摘要算法、签名、验签

2.签名

用RSA私钥对SHA1计算得到的摘要值签名。

openssl dgst -sign rsa_private.key -sha1 -out sha1_rsa_file.sign file.txt

OpenSSL 命令详解(二)——摘要算法、签名、验签

3.验签

用相应的公钥和相同的摘要算法进行验签,否则会失败。

openssl dgst -verify rsa_public.key -sha1 -signature sha1_rsa_file.sign file.txt

OpenSSL 命令详解(二)——摘要算法、签名、验签

也可以使用相同的私钥和相同的摘要算法进行验证。 
OpenSSL 命令详解(二)——摘要算法、签名、验签

DSA**对签名验签

1.生成DSA参数

openssl dsaparam -out dsa.param 1024

2.由DSA参数产生DSA私钥

openssl gendsa -out dsa_private.key dsa.param

3.由DSA私钥生成DSA公钥

openssl dsa -in dsa_private.key -out dsa_public.key -pubout

OpenSSL 命令详解(二)——摘要算法、签名、验签

4.用DSA私钥对SHA384计算的摘要值进行签名。

openssl dgst -sign dsa_private.key -sha384 -out sha384_dsa.sign file.txt

DSA签名对于某些摘要算法不匹配,详见下图。

OpenSSL 命令详解(二)——摘要算法、签名、验签

5.用相应的公钥和摘要算法进行验签

openssl dgst -verify dsa_public.key -sha384 -signature sha384_dsa.sign file.txt

6.用相同的私钥和摘要算法验签

openssl dgst -prverify dsa_private.key -sha384 -signature sha384_dsa.sign file.txt

OpenSSL 命令详解(二)——摘要算法、签名、验签

DSA在每次签名时,使用了随机数k,如果对同一消息进行多次签名,签名结果是不同的,所以DSA是一种随机式数字签名。 
OpenSSL 命令详解(二)——摘要算法、签名、验签

HMAC

HMAC是**相关的哈希运算消息认证码,HMAC运算利用哈希算法,以一个**和一个消息为输入,生成一个消息摘要作为输出。

openssl dgst -md5 -hmac "asfdsdfsg" file.txt

OpenSSL 命令详解(二)——摘要算法、签名、验签

相关文章:

  • 2021-12-02
  • 2022-12-23
  • 2022-03-08
  • 2021-10-08
  • 2022-12-23
  • 2021-11-18
  • 2022-12-23
  • 2021-10-09
猜你喜欢
  • 2022-03-04
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-12
  • 2021-11-23
  • 2021-06-27
相关资源
相似解决方案