Openssl 加密/解密输出缓冲区大小以及何时多次调用EVP_EncryptUpdate
我正在尝试使用openssl使用AES加密/解密消息。 经过以下研究: (第6章) 我可以成功地加密/解密 我的设想是:Openssl 加密/解密输出缓冲区大小以及何时多次调用EVP_EncryptUpdate,openssl,Openssl,我正在尝试使用openssl使用AES加密/解密消息。 经过以下研究: (第6章) 我可以成功地加密/解密 我的设想是: 加密:输入纯文本=>Encrypt with aes 256 cbc=>在encode with base64中返回结果 解密:输入加密的base64编码字符串=>解码base64=>使用aes 256 cbc解密=>返回解密的纯文本 但我有一些问题: 如何分配加密的缓冲区大小:char*out=(char*)malloc(inLength+EVP\u MAX\u BLOCK
根据上述malloc的加密缓冲区大小。我认为 纯文本大小将小于二进制加密的数据长度。 是这样吗
明文大小+(块大小-明文大小%block大小)
。所以你的缓冲应该足够了。请参阅此处的更多信息:while(1){
EVP_EncryptUpdate(ctx, ciphertext + outlen_tot, &outlen, (unsigned char*)msg + outlen_tot, block_size);
outlen_tot += outlen;
if( msg_len - outlen_tot < block_size ){
break;
}
}
EVP_EncryptUpdate(ctx, out, &out_len, inString, strlen(inString));