DxLibFanに戻る
//dkc.hをインクルード
#include <dkutil_c/dkc.h>
int main(){
//これを暗号化するために使うキーとする(もちろんunsigned charの配列でもOK)
const char *key="abcdefg";
//キーのサイズ
size_t keylen = strlen(key);
//暗号化したいデータ
BYTE target[10]={0,1,2,3,4,5,6,7,8,9};
BYTE save[10];
//元データを保存しておく
memcpy(save,target,sizeof(save));
//暗号化するとき
{
int i;
//arcfourオブジェクトを作成
DKC_ARCFOUR_STATE *p = dkcAllocArcfour(key,keylen);
for(i=0;i<10;i++){//targetをXORする。今回のサンプルではdkcArcfourByte()で1バイトずつ
target[i] ^= dkcArcfourByte(p);
}
//arcfourオブジェクトを開放
dkcFreeArcfour(&p);
}
//暗号化したデータを何かする・・・
//send(target,sizeof(target));
//復号化するとき(暗号火事と同じ・・・)
{
int i;
//arcfourオブジェクトを作成
DKC_ARCFOUR_STATE *p = dkcAllocArcfour(key,keylen);
for(i=0;i<10;i++){//targetをXORする。復号化時も同じ
target[i] ^= dkcArcfourByte(p);
}
//arcfourオブジェクトを開放
dkcFreeArcfour(&p);
}
if(0==memcmp(save,target,sizeof(save))){
printf("復号化成功。");
}else{
printf("復号化失敗。");
}
#ifdef _DEBUG
system("PAUSE");
#endif
return 0;
}