微信公众平台开发时,须要验证消息是否来自微信server,这要用到sha1加密算法。官网上给的是php的sha函数,C++中要用到以下这个函数:
一、引入头文件:
#include<openssl/sha.h>
#include<inttypes.h>
二、用这个函数转码:
//函数功能:将传入的字符串用sha1加密算法加密后传出 //strOriginal:原始字符串 //返回值:加密后的字符串 stringGetSha1Str(const string& strOriginal) { unsigned char digest[20] = {0}; ::SHA1((const unsignedchar*)strOriginal.c_str(), strOriginal.length(), digest); string strResult; char sHexStr[32]; for( uint32_t i = 0; i < sizeof(digest);i++ ) { snprintf( sHexStr, sizeof(sHexStr),"%x%x", ((int)digest[i] & 0xf0) >> 4, ((int)digest[i] &0x0f) ); strResult.append(sHexStr); } return strResult; }