mbedtls_md
时间: 2023-12-11 21:03:44 浏览: 106
mbedtls_md是mbedtls库中的一个模块,用于提供消息摘要算法的实现。消息摘要算法是一种将任意长度的消息压缩到固定长度输出的算法,常用于数据完整性校验、数字签名等场景。mbedtls_md支持多种消息摘要算法,包括MD2、MD4、MD5、SHA-1、SHA-224、SHA-256、SHA-384、SHA-512等。
以下是一个使用mbedtls_md计算SHA-256消息摘要的例子:
```c
#include "mbedtls/md.h"
#include <stdio.h>
#include <string.h>
int main()
{
const char *msg = "hello, mbedtls_md!";
unsigned char digest[32];
mbedtls_md_context_t ctx;
mbedtls_md_type_t md_type = MBEDTLS_MD_SHA256;
mbedtls_md_init(&ctx);
mbedtls_md_setup(&ctx, mbedtls_md_info_from_type(md_type), 0);
mbedtls_md_starts(&ctx);
mbedtls_md_update(&ctx, (const unsigned char *)msg, strlen(msg));
mbedtls_md_finish(&ctx, digest);
mbedtls_md_free(&ctx);
printf("SHA-256 digest of \"%s\":\n", msg);
for (int i = 0; i < 32; i++) {
printf("%02x", digest[i]);
}
printf("\n");
return 0;
}
```
该例子使用了mbedtls_md_setup函数初始化了一个SHA-256的消息摘要算法上下文,使用mbedtls_md_starts函数开始计算消息摘要,使用mbedtls_md_update函数输入消息数据,使用mbedtls_md_finish函数输出消息摘要结果。最后使用mbedtls_md_free函数释放上下文资源。
阅读全文