暗号化定数(ENUM_CRYPT_METHOD)
暗号化定数(ENUM_CRYPT_METHOD)は、テキストなどを暗号化し、セキュリティを高めるために使用されます。
プログラムでパスワードを使用するときに、パスワードを暗号化をすると良いでしょう。
暗号化することで、セキュリティが高くなり、より信頼できる自動売買を作成することができます。
暗号化、復号化するには、以下の関数を使用してください。
暗号化するには、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 | SHA-1ハッシュ計算 |
CRYPT_HASH_SHA256 | SHA-256ハッシュ計算 |
CRYPT_HASH_MD5 | MD5ハッシュ計算 |
CRYPT_ARCH_ZIP | ZIPアーカイブ |
暗号化定数の使い方
主に、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の値が代入されます。