指定されたメソッドで配列からデータを変換します。
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