常用的openssl函数
base64解编码
- 依次调用EVP_DecodeInit(), EVP_DecodeUpdate(), EVP_DecodeFinal(),与md5和sha1类似,适用于数据量特别大时,分段解码,通过多次调用EVP_DecodeUpdate()实现。
- 调用int EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int n);
int EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n);这两个函数都是一次性使用的,注意下返回值是解码后的结果长度,因此返回值大于等于0时,解编码成功。
bool base64Decode(const string& strSrc, string& strDest)
{
char* szBuffer = new char[strSrc.length()];
if (EVP_DecodeBlock((unsigned char*)szBuffer, (const unsigned char*)strSrc.c_str(), strSrc.length()) <= 0)
{
return false;
}
strDest = szBuffer;
delete[] szBuffer;
szBuffer = NULL;
}
AES加解密
AES加解密最关键的函数:
加密
int AES_set_encrypt_key(const unsi