Previous topicNext topic
Help > XEngine_Core > XEngine_Cryption > Cryption_XCrypto >
Cryption_XCrypto_Encoder

函数

Cryption_XCrypto_Encoder

功能

X加密函数

语法

bool Cryption_XCrypto_Encoder(LPCXSTR lpszMsgBuffer, int* pInt_MsgLen, XBYTE* ptszMsgBuffer, LPCXSTR lpszKeys = NULL, bool bXEngineHdr = true)

参数

 参数.一:lpszMsgBuffer
  In/Out:In
  类型:常量字符指针
  可空:N
  意思:输入要加密的缓冲区
 参数.二:pInt_MsgLen
  In/Out:In/Out
  类型:整数型指针
  可空:N
  意思:输入要加密缓冲区大小,输出加密后的缓冲区大小
 参数.三:ptszMsgBuffer
  In/Out:Out
  类型:字符指针
  可空:Y
  意思:输出加密好的缓冲区,如果此参数为NULL,参数二将被设置为需要的大小
 参数.四:lpszKeys
  In/Out:In
  类型:常量字符指针
  可空:Y
  意思:输入要加密的密码,如果为空表示这个数据不需要单独的密码加密
 参数.五:bXEngineHdr
  In/Out:In
  类型:逻辑型
  可空:Y
  意思:是否包含XEngine的协议头,方便用于区分加密信息,可以不带就设置否

返回值

类型:逻辑型
意思:是否成功

备注

bXEngineHdr为false,大小输入多少就是多少

示例

int XCrypto_Test()
{
    LPCTSTR lpszFile = _T("K:\\netengineapp\\NetEngine_WINApps\\Debug\\test.Key");
    int nLen = strlen(lpszFile);
    UCHAR tszEncoder[2048];
    CHAR tszDecoder[2048];

    memset(tszEncoder, '\0', sizeof(tszEncoder));
    memset(tszDecoder, '\0', sizeof(tszDecoder));

    if (!OPenSsl_XCrypto_Encoder(lpszFile, &nLen, tszEncoder, "123123"))
    {
        return -1;
    }
    for (int i = 0; i < nLen; i++)
    {
        printf("%02X ", tszEncoder[i]);
    }
    printf("\r\n%s\n", tszEncoder);
        
    OPenSsl_XCrypto_Decoder((LPCSTR)tszEncoder, &nLen, tszDecoder, "123123");
    printf("%s\n", tszDecoder);
    return 0;
}