#include <stdint.h>
#include <string.h>
#include <openssl/evp.h>
#include <openssl/x509.h>
/* 生成摘要 */
void digest_test() {
uint8_t md_value[EVP_MAX_MD_SIZE];
EVP_MD_CTX md_ctx;
char* msg1 = "Test Message1";
char* msg2 = "Test Message2";
EVP_MD_CTX_init(&md_ctx);
EVP_DigestInit(&md_ctx, EVP_md5());
EVP_DigestUpdate(&md_ctx, msg1, strlen(msg1));
EVP_DigestUpdate(&md_ctx, msg2, strlen(msg2));
uint32_t val_len;
EVP_DigestFinal(&md_ctx, md_value, &val_len);
printf("摘要为:");
for (int i = 0; i < val_len; i++) {
printf("0x%02x ", md_value[i]);
}
EVP_MD_CTX_cleanup(&md_ctx);
printf("\n-----------------------\n");
}
本文介绍了一个使用OpenSSL库生成MD5摘要的例子。通过初始化MD上下文、设置消息内容并更新摘要状态,最终输出了由两段不同消息组合后的摘要结果。
1万+

被折叠的 条评论
为什么被折叠?



