实现AES加密后再用base64编码输出。公式:encode string =base64(aesEncrypt(in_data,secret_key))。
函数代码:
char * aes_encode_add_base64(unsigned char * in_data,const char * secret_key,char * base64_result)
{
unsigned char key[32] = {1};
unsigned char iv[16] = {0};
int inLen = strlen(in_data);
int encLen = 0;
int outlen = 0;
unsigned char encData[1024];//需要优化
char aes_result[1024];//需要优化
EVP_CIPHER_CTX *ctx;
ctx = EVP_CIPHER_CTX_new();
EVP_CipherInit_ex(ctx, EVP_aes_256_ecb(), NULL, secret_key, iv, 1);
EVP_CipherUpdate(ctx, encData, &outlen, in_data, inLen);
encLen = outlen;
EVP_CipherFinal(ctx, encData+outlen, &outlen);
encLen += outlen;
EVP_CIPHER_CTX_free(ctx);
memset(aes_result,0x00,sizeof(aes_result));
memcpy(aes_result,encData,encLen);
base64_encode(aes_result, encLen, base64_result); //调用base64函数进行编码
return(base64_result);
}