linux下,C语言实现,使用系统给予的secret进行HmacSHA1加密求值(28位密钥)

前序:
为了求得后台提交数据所需的sign值,真的研究了几天的时间。首先求得HmacSHA1的值,值是原始的二进制流数据,接着使用base64编码,base64编码所得值是自带换行符的,需处理,最后把数据再进行URLEncode。这才得出完整的sign值,简直要崩溃了。。。。。

在线计算HMAC
https://1024tools.com/hmac

1.使用openssl工具库求HmacSHA1
openssl下载地址:https://www.openssl.org/source/
我用了是最新的版本

2.项目引用openssl,接着调用HMAC函数求值
//例子,伪代码
char dataSign[128] = {0};
sprintf(dataSign, “%s%s”, “appId=”, temp_AppId);
sprintf(dataSign, “%s%s%d”,dataSign, “CardID=”,nUserID);
sprintf(dataSign, “%s%s”,dataSign, “CodeVersion=1”);//CUSTEOM_SOFTVERSION
sprintf(dataSign, “%s%s%d”,dataSign, “FaceUID=”,nUserID);
sprintf(dataSign, “%s%s%d”,dataSign, “IDNumber=”,nUserID);
char secretData[64] = {0};
sprintf(secretData,"%s%s",secretData,temp_Secret);
unsigned char* result;
unsigned int len = 50;
result = (unsigned

你可能感兴趣的:(linux,linux,openssl,HmacSHA1,base64)