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;
}
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送