c语言中使用openssl对数据进行hmac_sha256加密

#include <stdio.h>
#include <openssl/hmac.h>
#include "openssl/evp.h"

void hmacsha256Encode(char *src,char *dst){
    
    
	const char *key="123456abcdefg";
	HMAC_CTX ctx;  
	HMAC_CTX_init(&ctx);  
	HMAC_Init_ex(&ctx, key, strlen(key), EVP_sha256(), NULL);  
	HMAC_Update(&ctx, (unsigned char*)src, strlen(src));        
	char output[128] = {
    
    0};
	unsigned int length = 0;
	HMAC_Final(&ctx, (unsigned char*)output, &length);  
	HMAC_CTX_cleanup(&ctx);
	char m[64] = "";
	for(int i = 0; i < length; i++) {
    
      
        //printf("%02x", (unsigned int)output[i]);
		char s[10];
       	sprintf(s,"%02x",(unsigned int)output[i]);
       	strcat(m,s);		
    }	
	strcpy(dst,m);
}

猜你喜欢

转载自blog.csdn.net/c13055215176/article/details/134517359