【发布时间】:2018-11-13 17:37:13
【问题描述】:
我正在为必须使用密码学的 C 程序做作业。我确实必须使用一些加密函数,但我不知道这些函数对我意味着什么。其中一些功能是EVP_MD_CTX、EVP_DigestUpdate()。谁能告诉我如何理解这些功能的使用?
【问题讨论】:
标签: cryptography
我正在为必须使用密码学的 C 程序做作业。我确实必须使用一些加密函数,但我不知道这些函数对我意味着什么。其中一些功能是EVP_MD_CTX、EVP_DigestUpdate()。谁能告诉我如何理解这些功能的使用?
【问题讨论】:
标签: cryptography
这些是 OpenSSL 用于计算加密哈希的糟糕 API。请参阅:https://www.openssl.org/docs/man1.0.2/crypto/EVP_DigestInit.html。只需查看页面上的示例即可。您必须了解,早在 1990 年代,没有人知道如何编写可供没有密码学博士学位的人使用的密码 API。通常,您永远不必调用如此糟糕的 API。时代变了,加密 API 有了很大的改进。
【讨论】:
EVP_* 函数较新。它们取代了旧的、拼凑在一起的 API。无论算法如何,EVP_* 函数都提供一致的接口。另请参阅 OpenSSL wiki 上的 EVP Interfaces。