CryptEncode

Dizideki verileri belirtilen yöntemle dönüştürür.

int  CryptEncode(
   ENUM_CRYPT_METHOD   method,        // yöntem
   const uchar&        data[],        // kaynak dizi
   const uchar&        key[],         // anahtar
   uchar&              result[]       // hedef dizi
   );

Parametreler

method

[in]  Veri dönüştürme yöntemi. ENUM_CRYPT_METHOD numaralandırmasının değerlerinden biri olabilir.

data[]

[in]  Kaynak dizi.

key[]

[in]  Anahtar dizisi.

result[]

[out]  Hedef dizi.

Geri dönüş değeri

Hedef dizideki bayt miktarı veya hata durumunda 0. Hata hakkında bilgi almak için GetLastError() fonksiyonunu çağırın.

Örnek:

//+------------------------------------------------------------------+
//| ArrayToHex                                                       |
//+------------------------------------------------------------------+
string ArrayToHex(uchar &arr[],int count=-1)
  {
   string res="";
//--- kontrol et
   if(count<0 || count>ArraySize(arr))
      count=ArraySize(arr);
//--- HEX dizgesine dönüştür
   for(int i=0; i<count; i++)
      res+=StringFormat("%.2X",arr[i]);
//---
   return(res);
  }
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string text="The quick brown fox jumps over the lazy dog";
   string keystr="ABCDEFG";
   uchar src[],dst[],key[];
//--- anahtarı hazırla
   StringToCharArray(keystr,key);
//--- metni src[] kaynak dizisine kopyala
   StringToCharArray(text,src);
//--- başlangıç verisini yazdır
   PrintFormat("Initial data: size=%d, string='%s'",ArraySize(src),CharArrayToString(src));
//--- src[] dizisini key[] dizisi içerisindeki DES 56 bit anahtar ile şifrele
   int res=CryptEncode(CRYPT_DES,src,key,dst);
//--- hatayı kontrol et
   if(res>0)
     {
      //--- şifrelenmiş veriyi yazdır
      PrintFormat("Encoded data: size=%d %s",res,ArrayToHex(dst));
      //--- dst[] dizisini src[] dizisi olarak çöz
      res=CryptDecode(CRYPT_DES,dst,key,src);
      //--- hatayı kontrol et
      if(res>0)
        {
         //--- şifresi çözülmüş veriyi yazdır
         PrintFormat("Decoded data: size=%d, string='%s'",ArraySize(src),CharArrayToString(src));
        }
      else
         Print("Error in CryptDecode. Error code=",GetLastError());
     }
   else
      Print("Error in CryptEncode. Error code=",GetLastError());
  }

Ayrıca bakınız

Array Functions, CryptDecode()