openssl3.4.0 hmac c语言例子
时间: 2024-11-20 11:27:41 浏览: 31
OpenSSL 3.4.0 提供了HMAC (Hash-based Message Authentication Code) 功能,它允许通过哈希函数对数据进行加密以验证消息完整性和来源。以下是使用C语言的一个简单示例,展示如何使用OpenSSL HMAC库计算SHA256哈希值:
```c
#include <openssl/hmac.h>
#include <openssl/sha.h>
#include <string.h>
// 定义密钥和数据
const char *key = "my_secret_key";
const char *data = "Hello, OpenSSL HMAC Example!";
size_t key_len = strlen(key);
size_t data_len = strlen(data);
// 创建HMAC结构体,并设置哈希算法为SHA256
unsigned char hmac_output[HMAC_SHA256_DIGEST_LENGTH];
HMAC_CTX hmac;
HMAC_Init_ex(&hmac, (unsigned char*)key, key_len, EVP_sha256(), NULL);
// 计算HMAC
HMAC_Update(&hmac, (unsigned char*)data, data_len);
HMAC_Final(&hmac, hmac_output, &hmac_outlen);
// 清理HMAC上下文
HMAC_Final(&hmac, NULL, NULL);
HMAC_cleanup(&hmac);
// 打印结果
printf("HMAC-SHA256: ");
for(size_t i = 0; i < HMAC_SHA256_DIGEST_LENGTH; ++i) {
printf("%02x", hmac_output[i]);
}
printf("\n");
阅读全文