|
检查是否已安装 openssl:
sudo apt-get install openssl
如果已安装执行以下操作:
sudo apt-get install libssl-dev
sudo apt-get install libssl0.9.8
Ubuntu 下安装 GTK+ 开发库
sudo apt-get install libgtk2.0-dev
#include <stdio.h>
#include <string.h>
#include <openssl/hmac.h>
int main() {
// The secret key for hashing
char key[] = "f5f48fc13505425891fb429f99d66171";
char user[] = "Fazio";
char api_key[] = "4894a1a7b78e44b6a449c5299b1afc24";
char nonce[] = "000000";
char *data = malloc(strlen(user)+strlen(api_key)+strlen(nonce)+1);
strcpy(data,user);
strcat(data,api_key);
strcat(data,nonce);
printf("%s \n",data);
unsigned char* result;
unsigned int len = 65;
result = (unsigned char*)malloc(sizeof(char) * len);
HMAC_CTX ctx;
HMAC_CTX_init(&ctx);
HMAC_Init_ex(&ctx, key, strlen(key), EVP_sha256(), NULL);
HMAC_Update(&ctx, (unsigned char*)data, strlen(data));
HMAC_Final(&ctx, result, &len);
HMAC_CTX_cleanup(&ctx);
printf("HMAC digest: ");
int i;
for (i = 0; i != len; i++)
printf("%02x", (unsigned int)result[i]);
printf("\n");
free(result);
return 0;
}
编译: gcc -o test test.c -lssl -lcrypto
运行结果:
Fazio4894a1a7b78e44b6a449c5299b1afc24000000
HMAC digest: 6764f0c105dcfa9fc143aea534232c297ab2ba4e362fd87af5eb0a26b270e0eb
|
|