指定されたメソッドで配列からデータを変換します。
int CryptEncode (ENUM_CRYPT_METHOD メソッド、 const uchar&data [] 、 const uchar&key [] 、 uchar&result [] );
|
パラメーター
方法
[in]データ変換メソッド。ENUM_CRYPT_METHOD列挙の値のいずれかになります。
データ[]
[in]ソース配列。
キー[]
[入力]キー配列。
結果[]
[出力]宛先配列。
戻り値
例:
//+——————————————————————+
//| ArrayToHex |
//+——————————————————————+
string ArrayToHex(uchar &arr[],int count=-1)
{
string res=“”;
//— check
if(count<0 || count>ArraySize(arr))
count=ArraySize(arr);
//— transform to HEX string
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[];
//— prepare key
StringToCharArray(keystr,key);
//— copy text to source array src[]
StringToCharArray(text,src);
//— print initial data
PrintFormat(“Initial data: size=%d, string=’%s'”,ArraySize(src),CharArrayToString(src));
//— encrypt src[] with DES 56-bit key in key[]
int res=CryptEncode(CRYPT_DES,src,key,dst);
//— check error
if(res>0)
{
//— print encrypted data
PrintFormat(“Encoded data: size=%d %s”,res,ArrayToHex(dst));
//— decode dst[] to src[]
res=CryptDecode(CRYPT_DES,dst,key,src);
//— check error
if(res>0)
{
//— print decoded data
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());
}
|
0 people found this article useful
0 people found this article useful