【MQL4定数】暗号化定数(ENUM_CRYPT_METHOD)

【辞書】MQLリファレンス

暗号化定数(ENUM_CRYPT_METHOD)

暗号化定数(ENUM_CRYPT_METHOD)は、テキストなどを暗号化し、セキュリティを高めるために使用されます。

プログラムでパスワードを使用するときに、パスワードを暗号化をすると良いでしょう。

暗号化することで、セキュリティが高くなり、より信頼できる自動売買を作成することができます。

暗号化、復号化するには、以下の関数を使用してください。

暗号化するには、CryptEncode関数を使います。

暗号化を復号するには、CryptDecode関数を使います。

暗号化定数(ENUM_CRYPT_METHOD)

定数説明(暗号化の計算方法)
CRYPT_BASE64BASE64変換
CRYPT_AES128128ビット(16バイト)キ―AES暗号化
CRYPT_AES256256ビット(32バイト)キ―AES暗号化
CRYPT_DES56ビット(7バイト)キ―DES暗号化
CRYPT_HASH_SHA1SHA-1ハッシュ計算
CRYPT_HASH_SHA256SHA-256ハッシュ計算
CRYPT_HASH_MD5MD5ハッシュ計算
CRYPT_ARCH_ZIPZIPアーカイブ

暗号化定数の使い方

主に、CryptEncode関数、CryptDecode関数で使用されます。

それぞれの関数の引数として使用されます。

例えば、以下のように使用します。

void OnStart()
 {
  //暗号化するテキスト
  string text="Hello World";

  //暗号化するための鍵
  string keystr="ABCDEFG";

  //暗号化に使用する配列
  uchar src[],dst[],key[];

  //鍵をchar型の配列に変換
  StringToCharArray(keystr,key);

  //テキストをchar型の配列に変換
  StringToCharArray(text,src);

  //暗号化前のテキストを表示
  PrintFormat("Initial data: size=%d, string='%s'",ArraySize(src),CharArrayToString(src));

  //src[] を key[] を使って、56ビット(7バイト)キ―DESで暗号化
  //暗号化した結果を dst[] に格納
  int res=CryptEncode(CRYPT_DES,src,key,dst);

  //エラーをチェック
  if(res>0)
    {
    //dst[] を key[] を使って、56ビット(7バイト)キ―DESで復号化
    //復号化した結果を src[] に格納
    res=CryptDecode(CRYPT_DES,dst,key,src);

    //エラーをチェック 
    if(res>0)
       {
        //復号化されたテキストを表示
        PrintFormat("Decoded data: size=%d, string='%s'",ArraySize(src),CharArrayToString(src));
       }
    }
 }

【補足】暗号化定数の列挙型(ENUM_CRYPT_METHOD)

暗号化定数は、ENUM_CRYPT_METHOD​という列挙型に含まれています。

列挙型は、定数群をひとまとめにしたものです。

以下のように使います。

ENUM_CRYPT_METHOD cryptMethod = CRYPT_DES;

上記のようにプログラムすると、cryptMethod変数に CRYPT_DESの値が代入されます。