2019年3月24日日曜日

MT4 の 暗号化 CryptEncode(); 関数登場!

それはメタエディターで遊んでいた時です。
Crと押したところ候補文字にCryptEncode が出てきました。

仮想通貨のようなかっこいい名前の関数です。
いままで気が付かなかったので、最近のビルドで追加されたのかと思います。

使い方はキーと暗号化したいテキストをCryptEncodeで暗号化して
CryptDecode で復号化します。

データーの変換方法は以下の種類から選べます。


ENUM_CRYPT_METHOD
定数
説明
CRYPT_BASE64
BASE64
CRYPT_AES128
128ビット(16バイト)キーでの AES 暗号化。
CRYPT_AES256
256 ビット(32 バイト)キーでの AES 暗号化。
CRYPT_DES
56ビット(7バイト)キーでの DES 暗号化。
CRYPT_HASH_SHA1
SHA1 HASH の計算。
CRYPT_HASH_SHA256
SHA256 HASH の計算。
CRYPT_HASH_MD5
MD5 HASH の計算。
CRYPT_ARCH_ZIP
ZIP アーカイブ。

(参照MQL5)

用途不明ですが、まあ使ってみましょう。

void OnInit()
{
uchar data[],Txt[],Key[],Txt2[];
int res,res2;
StringToCharArray("abcdefg",Key);
StringToCharArray("TEXT-test",Txt);
Print("1 ",CharArrayToString(Txt));
res =CryptEncode(CRYPT_DES,Txt,Key,data);
Print("2: ",CharArrayToString(data));
     res2=CryptDecode(CRYPT_DES,data,Key,Txt2);
Print("3: ",CharArrayToString(Txt2));
}

キー"abcdefg" を 配列Keyにいれます。StringToCharArray("abcdefg",Key);

暗号化したい"TEXT-test"を配列Txtに格納します。StringToCharArray("TEXT-test",Txt);

DES暗号化をつかってTxtをKeyをつかって暗号化したものを配列dataにいれます。CryptEncode()

DES暗号化で暗号化したdata をKeyで復号化したものをTxt2にいれます。
CryptDecode()

さーて なんに使おうかな














0 件のコメント:

コメントを投稿