我正在使用Openssl(OpenSSL 1.0.2s 28 May 2019
),并且想签署一条消息。
$ echo foo > a.txt
$ openssl dgst -sha256 -hex -sign chiave_priv_1.pem a.txt
EC-SHA256(a.txt)= 3045022100c7d6e61942d3104838b70cda870fb53870c36aa7075be518e9d0d098370d989802202dddd3e0fbba70be84d4540e20c43116cf0db1cee69b2ed422c9403cdac8bd54
$ openssl dgst -sha256 -hex -sign chiave_priv_1.pem a.txt
EC-SHA256(a.txt)= 3046022100fa1df4a9d3f07b0105e5923ef9c7a6f52dc5fa3b60beda7d1ed8a5eec805d3f402210097941741cdaa06ff650e48912eb05d37bc74aab8cf24951a543c88a357bb7f30
我重复签名两次,得到两个不同的输出
如果您使用DSA密钥或ECC密钥,则签名是随机的。据我所知,这是有目的的。
如果使用RSA密钥,则取决于您的填充类型。缺省填充为pkcs,应生成确定性签名。如果您更改填充类型(例如-sigopt rsa_padding_mode:pss),那么您还将获得随机结果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句