VC中BASE64编码和解码使用详解

2020-01-06 13:59:03丽君
  • -1:参数错误  >=0:有效编码长度(字符数),不包括字符串结束符。 
  • 备注:  等效于openssl中EVP_EncodeBlock函数 
  • */  INT BASE64_Encode( const BYTE* inputBuffer, INT inputCount, TCHAR* outputBuffer ); 
  •   /* 
  • 功能:将BASE64编码字符串转换为二进制数据  参数说明: 
  • inputBuffer:BASE64编码字符串  inputCount:编码长度(字符数),应该为4的倍数。 
  • outputBuffer:存储转换后的二进制数据  返回值: 
  • -1:参数错误  -2:数据错误 
  • >=0:转换后的字节数  备注: 
  • 等效于openssl中EVP_DecodeBlock函数  */ 
  • INT BASE64_Decode( const TCHAR* inputBuffer, INT inputCount, BYTE* outputBuffer );   
  • #ifdef __cplusplus  } 
  • #endif 

    BASE64_API.cpp 文件内容

     

     
    1. #pragma once   
    2. #include "stdafx.h"   
    3. #include "BASE64_API.h"   
    4. static const CHAR* DATA_BIN2ASCII = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";   
    5. INT BASE64_Encode( const BYTE* inputBuffer, INT inputCount, TCHAR* outputBuffer )  { 
    6. INT i;  BYTE b0, b1, b2; 
    7.   if( (inputBuffer == NULL) || (inputCount < 0) )