CryptEncode

Transforma os dados do array com o método especificado.

int  CryptEncode(
   ENUM_CRYPT_METHOD   method,        // método
   const uchar&        data[],        // array fonte
   const uchar&        key[],         // key
   uchar&              result[]       // array de destino
   );

Parâmetros

método

[in]  Método de transformação de dados. Pode ser um dos valores da enumeração ENUM_CRYPT_METHOD.

data[]

[in]  Array fonte.

key[]

[in]  Key array.

result[]

[out]  Array de destino.

Valor retornado

Quantidade de bytes no array de destino ou 0 em caso de erro. Para obter informações sobre o erro chame a função GetLastError().

Exemplo:

//+------------------------------------------------------------------+
//| ArrayToHex                                                       |
//+------------------------------------------------------------------+
string ArrayToHex(uchar &arr[],int count=-1)
  {
   string res="";
//--- verificar
   if(count<0 || count>ArraySize(arr))
      count=ArraySize(arr);
//--- transformar em HEX string
   for(int i=0; i<count; i++)
      res+=StringFormat("%.2X",arr[i]);
//---
   return(res);
  }
//+------------------------------------------------------------------+
//| Função de início do programa script                              |
//+------------------------------------------------------------------+
void OnStart()
  {
   string text="A rápida raposa marrom salta sobre o cão preguiçoso";
   string keystr="ABCDEFG";
   uchar src[],dst[],key[];
//--- preparar key
   StringToCharArray(keystr,key);
//--- copiar texto do array fonte src[]
   StringToCharArray(text,src);
//--- imprimir dados iniciais
   PrintFormat("Initial data: size=%d, string='%s'",ArraySize(src),CharArrayToString(src));
//--- encriptar src[] com a key DES 56-bit em key[]
   int res=CryptEncode(CRYPT_DES,src,key,dst);
//--- verificar erro
   if(res>0)
     {
      //--- imprimir dados encriptados
      PrintFormat("Encoded data: size=%d %s",res,ArrayToHex(dst));
      //--- decodificar dst[] para src[]
      res=CryptDecode(CRYPT_DES,dst,key,src);
      //--- verificar erro     
      if(res>0)
        {
         //--- imprimir dados decodificados
         PrintFormat("Decoded data: size=%d, string='%s'",ArraySize(src),CharArrayToString(src));
        }
      else
         Print("Erro no CryptDecode. Error code=",GetLastError());
     }
   else
      Print("Erro no CryptEncode. Error code=",GetLastError());
  }

Veja também

Funções do array, CryptDecode()