我正在实现散列(又名摘要)并登录使用 OpenSSL EVP API 的应用程序。然而,API 有三个非常相似的方法,令人困惑:
Sign
这听起来应该用于签名,但EVP_SignInit
只是#define
一个EVP_DigestInit
Digest
这似乎只能用于哈希生成,无法指定EVP_PKEY
.DigestSign
看起来它同时进行散列和签名。
但是文档建议DigestSign
用于签名(而不是实际的Sign
)。
我不是密码学专家,所以这让我很困惑。它们之间有什么区别?哪一个是实施签名的好选择?