
int openssl_hash() {
{
// 输入参数
const char* key = "xiaohai";
const char* data = "xiaohai";
unsigned int hmac_len;
// 计算HMAC
unsigned char* result = HMAC(
EVP_sha256(), // 算法
key, strlen(key), // 密钥
(unsigned char*)data, strlen(data), // 消息
NULL, &hmac_len // 输出参数
);
// 打印结果(16进制)
printf("HMAC-SHA256: ");
for (int i = 0; i < hmac_len; i++) {
printf("%02x", result[i]);
}
printf("\n");
}
{
unsigned char buf[4096];
unsigned char hmac[32];
unsigned int hmac_len = 32;
HMAC_CTX* ctx = HMAC_CTX_new();
HMAC_Init_ex(ctx, "xiaohai", strlen("xiaohai"), EVP_sha256(), NULL);
HMAC_Update(ctx, (unsigned char *)"xiaohai", strlen("xiaohai"));
HMAC_Final(ctx, hmac, &hmac_len);
HMAC_CTX_free(ctx);
// 打印结果(16进制)
printf("HMAC-SHA256: ");
for (int i = 0; i < hmac_len; i++) {
printf("%02x", hmac[i]);
}
printf("\n");
}
return 0;
}