亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? unitkeys.cpp

?? 單鑰密碼算法 AES DES IDEA LZW RC5
?? CPP
字號:
//---------------------------------------------------------------------------


#pragma hdrstop

#include <stdlib.h>
#include <memory.h>
#include <vcl.h>
#include <stdio.h>
#include "UnitKeys.h"

static char srcData[9];

//---------------------------------------------------------------------------

//隨機生成一個八位的子密鑰
unsigned int GetRandKey()
{
  return random(95)+32;
}
//---------------------------------------------------------------------------

//修正對64字節數組形式的子密鑰
void CheckSumBits(char* S)
{
  unsigned int i,j,sum;

  for (i=0;i<8;i++)
  {
    sum = 0x1;
    for (j=0;j<7;j++)
      sum ^= S[i*8+j];
    S[i*8+7]=sum;
  }
}
//---------------------------------------------------------------------------

//把字符串型子密鑰轉成字節的數組,一個char表示一個二進制位
void BytesToBits(const char* S, char *bits, int len)
{
  int i;

  for(int i=0; i<len; ++i)
    bits[i] = (S[i>>3]>>(i&7)) & 1;
}
//---------------------------------------------------------------------------

//把字節的數組轉成字符串型子密鑰,一個char表示一個二進制位
void BitsToBytes(char* S, const char *bits, int len)
{
  int i;

  memset(S, 0, len>>3);
  for(i=0; i<len; i++)
    S[i>>3] |= bits[i]<<(i&7);
}
//---------------------------------------------------------------------------

//應用一個置換,把In數組中的數據轉換后放到Out數組中
void Transform(const char *Table, char *In, char *Out, int len)
{
  int i;
  char Temp[256];

  for (i=0;i<len;i++)
    Temp[i]=In[Table[i]-1];
  for (i=0;i<len;i++)
    Out[i]=Temp[i];
}
//---------------------------------------------------------------------------

//循環左移Loop位
void RotateL(char *In, char *Out, int len, int loop)
{
  char TMP[256];

  memcpy(TMP+len-loop, In, loop);
  memcpy(TMP, In+loop, len-loop);
  memcpy(Out, TMP, len);
}
//---------------------------------------------------------------------------

//生成16個子密鑰
void MakeSubKey(char* In)
{
  int i;
  char SourceKey[64];

  //轉換成原始的64字節數組
  BytesToBits(In, SourceKey, 64);
//  memcpy(SourceKey, In, 64);
    
  //取得C0和D0數據
  Transform(PC1_Table, SourceKey, CD[0], 56);

  //生成子密鑰
  for (i=0;i<16;i++)
  {
    //左移
    RotateL(CD[i],CD[i+1],28,LOOP_Table[i]);
    RotateL(CD[i]+28,CD[i+1]+28,28,LOOP_Table[i]);
    //置換2生成SubKeys[i]
    Transform(PC2_Table, CD[i+1], SubKeys[i], 48);
    SubKeys[i][48] = 0;
  }
}
//---------------------------------------------------------------------------

//異或
void Xor(char *InA, const char *InB, int len)
{
  for(int i=0; i<len; ++i)
    InA[i] = (InA[i] ^ InB[i]) & 0x01;
}
//---------------------------------------------------------------------------

void F_func(char *In, char *Out, const char *Ki)
{
  static char MR[48];

  Transform(E_Table, In, MR, 48);
  Xor(MR, Ki, 48);
  S_func(Out, MR);
  Transform(P_Table, Out, Out, 32);
}
//---------------------------------------------------------------------------

void S_func(char *Out, const char *In)
{
  for(char i=0,j,k; i<8; ++i,In+=6,Out+=4)
  {
    j = (In[0]<<1) + In[5];
    k = (In[1]<<3) + (In[2]<<2) + (In[3]<<1) + In[4];
    BytesToBits(&S_Box[i][j][k], Out, 4);
  }
}
//---------------------------------------------------------------------------

//生成IP表及相應的逆身表IP^-1
void GenIPTable()
{
  int i, j;

  memset(IP_Table, 0, 64);
  memset(IPR_Table, 0, 64);

  for (i=0;i<64;i++)
  {
    j = random(64);
    while (IPR_Table[j]!=0)
      j = random(64);
    IP_Table[i] = j+1;
    IPR_Table[j] = i+1;
  }
}
//---------------------------------------------------------------------------

//DES過程,輸入64位明文,加密或解密標志,輸出64位密文
void DES(const char *Src, char *Dest, bool flag)
{
  char DestBin[64];
  int i, Loop;

  Loop = ((DesLoop>16) || (DesLoop<1)) ? 16 : DesLoop;


  //得到LR[0]
  BytesToBits(Src, LR[0],64);
  //經過初始置換
  Transform(IP_Table, LR[0], LR[0], 64);

  //經過16輪加密
  for (i=0;i<Loop;i++)
  {
    memcpy(LR[i+1],LR[i]+32,32);
    if (flag)
      F_func(LR[i]+32, LR[i+1]+32, SubKeys[i]);
    else
      F_func(LR[i]+32, LR[i+1]+32, SubKeys[Loop-1-i]);

    Xor(LR[i+1]+32, LR[i], 32);
  }

  //把R16和L16聯成64位出輸
  RotateL(LR[Loop],LR[Loop],64,32);
  //經過最終置換
  Transform(IPR_Table, LR[Loop], DestBin, 64);
  //輸出
  BitsToBytes(Dest, DestBin, 64);
}
//---------------------------------------------------------------------------

//加密過程
void Encrypt(const char *Src, char *Dest)
{
  DES(Src, Dest, true);
}
//---------------------------------------------------------------------------

//解密過程
void DeEncrypt(const char *Src, char *Dest)
{
  DES(Src, Dest, false);
}
//---------------------------------------------------------------------------

bool SetIPTable(const char *In)
{
  int i, j;

  memcpy(IP_Table, In, 64);
  memset(IPR_Table, 0, 64);

  for (i=0;i<64;i++)
  {
    if (IPR_Table[IP_Table[i]-1]!=0)
      return false;
    IPR_Table[IP_Table[i]-1] = i+1;
  }
  return true;
}
//---------------------------------------------------------------------------

void MakeSubKey2(char* In)
{
  int i;
  char SourceKey[64];

  //轉換成原始的64字節數組
  BytesToBits(In, SourceKey, 64);

  for (i=0;i<16;i++)
    Transform(KeyTable[i], SourceKey, SubKeys[i],48);
}

#pragma package(smart_init)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩成人一区二区| 国内精品免费**视频| 91精品国产福利| 国产成+人+日韩+欧美+亚洲| 亚洲欧美日韩在线不卡| 欧美精品一区二区三| 91国内精品野花午夜精品| 黄一区二区三区| 亚洲成人av电影在线| 国产精品短视频| 欧美变态凌虐bdsm| 欧美日韩一区在线| www.99精品| 国产另类ts人妖一区二区| 亚洲成人手机在线| 亚洲九九爱视频| 国产精品美女久久福利网站| 精品国产一区二区三区不卡| 欧美精品精品一区| 欧洲生活片亚洲生活在线观看| 国产成人精品网址| 国产精品乡下勾搭老头1| 日韩电影一区二区三区四区| 一区二区三区四区乱视频| 国产精品视频你懂的| 国产午夜精品久久久久久免费视| 日韩情涩欧美日韩视频| 7777精品久久久大香线蕉| 欧美亚洲国产一卡| 色香蕉久久蜜桃| 色综合久久中文综合久久97| 成人高清在线视频| yourporn久久国产精品| 成人污污视频在线观看| 粉嫩av一区二区三区| 粉嫩高潮美女一区二区三区| 国产高清不卡一区二区| 国产大片一区二区| 国产白丝精品91爽爽久久| 国产另类ts人妖一区二区| 国产精品一区二区无线| 国产激情一区二区三区| 懂色av一区二区在线播放| 国产成人av福利| 成人app网站| 色欧美片视频在线观看| 91极品视觉盛宴| 欧美日本韩国一区二区三区视频| 欧美亚洲动漫另类| 欧美剧情片在线观看| 3atv一区二区三区| 精品久久一区二区三区| 久久久久久毛片| 国产精品电影一区二区三区| 亚洲美女在线国产| 午夜精品久久久久久久久| 天天影视色香欲综合网老头| 免费在线观看成人| 国产一区二区三区黄视频 | 国内精品伊人久久久久av影院| 久久se精品一区二区| 国产乱码精品一区二区三区av| 岛国精品一区二区| 色乱码一区二区三区88 | 国产精品水嫩水嫩| 一区二区三区毛片| 免费成人美女在线观看.| 国产在线视频精品一区| 99久久精品费精品国产一区二区| 欧美性猛片aaaaaaa做受| 日韩欧美一区二区三区在线| 久久精品视频网| 一区二区三区在线不卡| 蜜臀av在线播放一区二区三区| 国产精品一区二区男女羞羞无遮挡| 粉嫩绯色av一区二区在线观看| 在线观看一区日韩| 久久综合九色综合97婷婷| 国产精品白丝在线| 视频一区视频二区在线观看| 国产在线日韩欧美| 色婷婷久久久综合中文字幕| 日韩欧美一区二区免费| 亚洲视频网在线直播| 蜜臀av性久久久久蜜臀aⅴ| 波多野结衣中文字幕一区二区三区 | 亚洲va天堂va国产va久| 极品少妇xxxx精品少妇| 91亚洲精品久久久蜜桃| 精品久久久久久久久久久久久久久| 亚洲欧洲av在线| 另类调教123区 | 欧美在线小视频| 久久久亚洲精品石原莉奈| 洋洋av久久久久久久一区| 亚洲欧洲国产日韩| 国产真实乱偷精品视频免| 欧洲生活片亚洲生活在线观看| 久久免费午夜影院| 午夜精品福利在线| 色婷婷综合五月| 国产精品网站在线观看| 日本怡春院一区二区| 色婷婷综合激情| 日本一区二区三区在线观看| 午夜精品福利一区二区三区av| 99国产欧美久久久精品| 精品国内片67194| 丝袜亚洲另类丝袜在线| av资源网一区| 国产欧美日韩视频一区二区| 男女男精品网站| 欧美高清www午色夜在线视频| 中文字幕佐山爱一区二区免费| 国产原创一区二区三区| 91精品在线一区二区| 亚洲国产精品一区二区www| 成人av综合在线| 国产午夜精品一区二区三区四区| 麻豆91免费观看| 91精品在线免费| 午夜精品一区在线观看| 色噜噜夜夜夜综合网| 首页国产丝袜综合| 欧美日韩国产片| 亚洲一卡二卡三卡四卡| 91美女视频网站| 亚洲视频一区在线| 91小视频在线观看| 亚洲丝袜美腿综合| 成人app网站| 亚洲人精品午夜| 91免费观看国产| 亚洲精品国产第一综合99久久 | 成人激情动漫在线观看| 国产午夜亚洲精品不卡| 高清免费成人av| 国产精品国产a| 不卡一区二区三区四区| 国产精品三级视频| gogo大胆日本视频一区| 亚洲色图都市小说| 欧美三级蜜桃2在线观看| 亚洲一本大道在线| 欧美一区二区视频观看视频| 日韩专区在线视频| 欧美成人欧美edvon| 国产一区二区三区四区五区入口| 2020国产精品| 9i看片成人免费高清| 一区二区三区四区不卡视频| 欧美三电影在线| 日韩电影免费在线| 国产午夜亚洲精品羞羞网站| 99久久亚洲一区二区三区青草| 亚洲蜜桃精久久久久久久| 欧美日韩精品欧美日韩精品一| 日韩高清不卡一区| 亚洲精品一区二区三区福利 | 99国产精品一区| 一区二区三区在线视频观看 | 一区二区高清在线| 欧美日韩亚洲国产综合| 欧美bbbbb| 国产人成一区二区三区影院| 99精品一区二区| 日韩在线观看一区二区| 精品久久久网站| 白白色 亚洲乱淫| 丝瓜av网站精品一区二区| 久久在线观看免费| 99精品久久99久久久久| 五月综合激情婷婷六月色窝| 欧美成人aa大片| av一区二区三区四区| 丝袜美腿高跟呻吟高潮一区| 亚洲精品一区二区精华| 91免费在线看| 久久精品国产第一区二区三区| 国产女同互慰高潮91漫画| 欧美视频一区二区三区| 国内不卡的二区三区中文字幕| 中文字幕永久在线不卡| 91精品国产综合久久精品图片| 国产福利精品导航| 亚洲成人精品影院| 久久久精品人体av艺术| 欧美美女直播网站| jizz一区二区| 蜜桃视频在线观看一区二区| 中文字幕五月欧美| 精品裸体舞一区二区三区| 91看片淫黄大片一级在线观看| 蜜桃精品视频在线观看| 亚洲精品欧美在线| 欧美国产丝袜视频| 日韩欧美一级片| 欧美中文字幕一区二区三区| 懂色av中文一区二区三区| 麻豆精品视频在线观看视频|