hmacsha256 c
时间: 2023-07-29 22:12:16 浏览: 58
HMAC-SHA256 (Hashed Message Authentication Code using SHA256) 是一种基于 SHA-256 哈希函数和密钥的消息认证码算法。它可以用来对消息进行完整性校验和认证,以确保消息的安全性和可靠性。
在 C 语言中,可以使用 OpenSSL 库来实现 HMAC-SHA256 算法。以下是一个使用 OpenSSL 库计算 HMAC-SHA256 的示例代码:
```c
#include <stdio.h>
#include <string.h>
#include <openssl/hmac.h>
int main() {
char key[] = "secret_key";
char msg[] = "Hello, world!";
unsigned char digest[EVP_MAX_MD_SIZE];
unsigned int digest_len;
char mdString[SHA256_DIGEST_LENGTH*2+1];
HMAC(EVP_sha256(), key, strlen(key), (unsigned char*) msg, strlen(msg), digest, &digest_len);
for(int i = 0; i < digest_len; i++) {
sprintf(&mdString[i*2], "%02x", (unsigned int)digest[i]);
}
printf("HMAC-SHA256 digest: %s\n", mdString);
return 0;
}
```
在上面的示例中,我们使用了 "secret_key" 作为密钥,"Hello, world!" 作为消息。HMAC 函数计算出的摘要存储在 digest 数组中,然后将其转换为十六进制字符串输出。
注意:在实际使用中,应该使用更长的、随机生成的密钥,以保证算法的安全性。
阅读全文