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

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

?? des.c

?? 破解des算法的程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
  DumpBin("input(right)", inBlk, 32);  DumpBin("raw key(left )", key+28, 28);  DumpBin("raw key(right)", key, 28);  /* Compute the first roundkey by performing PC1 */  ComputeRoundKey(roundKey, key);  DumpBin("roundKey(L)", roundKey+28, 28);  DumpBin("roundKey(R)", roundKey, 28);  /* Compute the initial permutation and divide the result into L and R */  ComputeIP(L,R,inBlk);  DumpBin("after IP(L)", L, 32);  DumpBin("after IP(R)", R, 32);  for (round = 0; round < 16; round++) {    if (verbose)      printf("-------------- BEGIN DECRYPT ROUND %d -------------\n", round);    DumpBin("round start(L)", L, 32);    DumpBin("round start(R)", R, 32);    /* Compute f(R, roundKey) and exclusive-OR onto the value in L */    ComputeF(fout, R, roundKey);    DumpBin("f(R,key)", fout, 32);    for (i = 0; i < 32; i++)      L[i] ^= fout[i];    DumpBin("L^f(R,key)", L, 32);    Exchange_L_and_R(L,R);    /* Rotate roundKey halves right once or twice (depending on round) */    DumpBin("roundKey(L)", roundKey+28, 28);       /* show keys before shift */    DumpBin("roundKey(R)", roundKey, 28);    RotateRoundKeyRight(roundKey);    if (round != 0 && round != 7 && round != 14 && round != 15)      RotateRoundKeyRight(roundKey);    DumpBin("round end(L)", L, 32);    DumpBin("round end(R)", R, 32);    if (verbose)      printf("--------------- END ROUND %d --------------\n", round);  }  Exchange_L_and_R(L,R);  /* Combine L and R then compute the final permutation */  ComputeFP(outBlk,L,R);  DumpBin("FP out( left)", outBlk+32, 32);  DumpBin("FP out(right)", outBlk, 32);}/* *  ComputeRoundKey: Compute PC1 on the key and store the result in roundKey */static void ComputeRoundKey(bool roundKey[56], bool key[56]) {  int i;  for (i = 0; i < 56; i++)    roundKey[table_DES_PC1[i]] = key[i];}/* *  RotateRoundKeyLeft: Rotate each of the halves of roundKey left one bit */static void RotateRoundKeyLeft(bool roundKey[56]) {  bool temp1, temp2;  int i;  temp1 = roundKey[27];  temp2 = roundKey[55];  for (i = 27; i >= 1; i--) {    roundKey[i] = roundKey[i-1];    roundKey[i+28] = roundKey[i+28-1];  }  roundKey[ 0] = temp1;  roundKey[28] = temp2;}/* *  RotateRoundKeyRight: Rotate each of the halves of roundKey right one bit */static void RotateRoundKeyRight(bool roundKey[56]) {  bool temp1, temp2;  int i;  temp1 = roundKey[0];  temp2 = roundKey[28];  for (i = 0; i < 27; i++) {    roundKey[i] = roundKey[i+1];    roundKey[i+28] = roundKey[i+28+1];  }  roundKey[27] = temp1;  roundKey[55] = temp2;}/* *  ComputeIP: Compute the initial permutation and split into L and R halves. */static void ComputeIP(bool L[32], bool R[32], bool inBlk[64]) {  bool output[64];  int i;  /* Permute   */  for (i = 63; i >= 0; i--)    output[table_DES_IP[i]] = inBlk[i];  /* Split into R and L.  Bits 63..32 go in L, bits 31..0 go in R.   */  for (i = 63; i >= 0; i--) {    if (i >= 32)      L[i-32] = output[i];    else      R[i] = output[i];  }}/* *  ComputeFP: Combine the L and R halves and do the final permutation. */static void ComputeFP(bool outBlk[64], bool L[32], bool R[32]) {  bool input[64];  int i;  /* Combine L and R into input[64]   */  for (i = 63; i >= 0; i--)    input[i] = (i >= 32) ? L[i - 32] : R[i];  /* Permute   */  for (i = 63; i >= 0; i--)    outBlk[table_DES_FP[i]] = input[i];}/* *  ComputeF: Compute the DES f function and store the result in fout. */static void ComputeF(bool fout[32], bool R[32], bool roundKey[56]) {  bool expandedBlock[48], subkey[48], sout[32];  int i,k;  /* Expand R into 48 bits using the E expansion */  ComputeExpansionE(expandedBlock, R);  DumpBin("expanded E", expandedBlock, 48);  /* Convert the roundKey into the subkey using PC2 */  ComputePC2(subkey, roundKey);  DumpBin("subkey", subkey, 48);  /* XOR the subkey onto the expanded block */  for (i = 0; i < 48; i++)    expandedBlock[i] ^= subkey[i];  /* Divide expandedBlock into 6-bit chunks and do S table lookups */  for (k = 0; k < 8; k++)    ComputeS_Lookup(k, sout+4*k, expandedBlock+6*k);  /* To complete the f() calculation, do permutation P on the S table output */  ComputeP(fout, sout);}/* *  ComputeP: Compute the P permutation on the S table outputs. */static void ComputeP(bool output[32], bool input[32]) {  int i;  for (i = 0; i < 32; i++)    output[table_DES_P[i]] = input[i];}/* *  Look up a 6-bit input in S table k and store the result as a 4-bit output. */static void ComputeS_Lookup(int k, bool output[4], bool input[6]) {  int inputValue, outputValue;  /* Convert the input bits into an integer */  inputValue = input[0] + 2*input[1] + 4*input[2] + 8*input[3] +          16*input[4] + 32*input[5];  /* Do the S table lookup */  outputValue = table_DES_S[k][inputValue];  /* Convert the result into binary form */  output[0] = (outputValue & 1) ? 1 : 0;  output[1] = (outputValue & 2) ? 1 : 0;  output[2] = (outputValue & 4) ? 1 : 0;  output[3] = (outputValue & 8) ? 1 : 0;}/* *  ComputePC2: Map a 56-bit round key onto a 48-bit subkey */static void ComputePC2(bool subkey[48], bool roundKey[56]) {  int i;  for (i = 0; i < 48; i++)    subkey[i] = roundKey[table_DES_PC2[i]];}/* *  ComputeExpansionE: Compute the E expansion to prepare to use S tables. */static void ComputeExpansionE(bool expandedBlock[48], bool R[32]) {  int i;  for (i = 0; i < 48; i++)    expandedBlock[i] = R[table_DES_E[i]];}/* *  Exchange_L_and_R:  Swap L and R */static void Exchange_L_and_R(bool L[32], bool R[32]) {  int i;  for (i = 0; i < 32; i++)    L[i] ^= R[i] ^= L[i] ^= R[i];                 /* exchanges L[i] and R[i] */}/* *  DumpBin: Display intermediate values if emableDumpBin is set. */static void DumpBin(char *str, bool *b, int bits) {  int i;  if ((bits % 4)!=0 || bits>48) {    printf("Bad call to DumpBin (bits > 48 or bit len not a multiple of 4\n");    exit(1);  }  if (EnableDumpBin) {    for (i = strlen(str); i < 14; i++)      printf(" ");    printf("%s: ", str);    for (i = bits-1; i >= 0; i--)      printf("%d", b[i]);    printf(" ");    for (i = bits; i < 48; i++)      printf(" ");    printf("(");    for (i = bits-4; i >= 0; i-=4)      printf("%X", b[i]+2*b[i+1]+4*b[i+2]+8*b[i+3]);    printf(")\n");  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一二精品视频| 欧美精品乱码久久久久久 | 一区二区三区国产精华| 亚洲电影你懂得| 成人av电影在线观看| 欧美男人的天堂一二区| 自拍偷自拍亚洲精品播放| 精品在线播放免费| 欧美日韩精品二区第二页| 国产精品麻豆欧美日韩ww| 精东粉嫩av免费一区二区三区| 日本久久一区二区| 国产精品欧美久久久久无广告 | 亚洲人午夜精品天堂一二香蕉| 久久99久国产精品黄毛片色诱| 欧美日韩一级大片网址| 亚洲啪啪综合av一区二区三区| 床上的激情91.| 国产亚洲精品福利| 精品一区二区久久| 欧美电影免费观看高清完整版在| 午夜精品久久久| 欧美日本国产视频| 一级特黄大欧美久久久| 成人免费毛片a| 国产精品久久久久aaaa樱花 | 免费的国产精品| 欧美日韩国产免费一区二区| 亚洲国产中文字幕| 日本韩国欧美三级| 亚洲国产精品人人做人人爽| 91麻豆福利精品推荐| 自拍偷在线精品自拍偷无码专区| 成人国产视频在线观看| 国产精品久久久久桃色tv| 成人一区二区三区在线观看| 国产午夜三级一区二区三| 国产成人自拍高清视频在线免费播放| 日韩精品专区在线影院重磅| 精久久久久久久久久久| 久久蜜桃一区二区| 成人听书哪个软件好| 国产精品欧美久久久久一区二区| www.欧美日韩| 亚洲激情av在线| 欧美久久久一区| 久久99精品久久只有精品| 2014亚洲片线观看视频免费| 懂色av一区二区三区免费观看 | av不卡免费在线观看| 亚洲日本青草视频在线怡红院| 色一情一乱一乱一91av| 亚洲成人777| 日韩欧美电影一区| 粉嫩欧美一区二区三区高清影视 | 欧美一区二区三区日韩| 精品影视av免费| 国产精品久久久久9999吃药| 欧美三级电影网站| 麻豆成人av在线| 国产精品网站导航| 欧美片网站yy| 国产精品99久久久| 亚洲主播在线播放| 精品福利二区三区| 日本韩国欧美在线| 国产乱子轮精品视频| 亚洲精品视频观看| 亚洲视频一区二区免费在线观看| 91久久精品国产91性色tv| 美女www一区二区| 中文字幕一区二区三区乱码在线| 欧美老人xxxx18| 粗大黑人巨茎大战欧美成人| 午夜精品视频一区| 中文字幕精品综合| 日韩三级.com| 91国偷自产一区二区开放时间 | 精品国产91亚洲一区二区三区婷婷| 波多野结衣在线一区| 男女男精品视频| 亚洲欧美日韩在线| 2019国产精品| 欧美美女一区二区在线观看| 成人性生交大片| 毛片一区二区三区| 亚洲一区视频在线观看视频| 欧美激情一区二区三区不卡| 欧美精品久久99久久在免费线 | 蜜桃久久久久久| 亚洲精品第1页| 欧美激情一区二区三区不卡| 日韩视频国产视频| 欧美日本一区二区| 91精品福利在线| 成人一区二区三区在线观看| 经典三级视频一区| 日本不卡高清视频| 天天色综合天天| 亚洲综合一区二区三区| 18欧美亚洲精品| 国产精品蜜臀在线观看| 久久久99免费| 久久亚洲综合av| 欧美精品一区二区久久久| 欧美一区二区国产| 在线不卡一区二区| 8x福利精品第一导航| 欧美日韩免费视频| 欧美日韩另类一区| 欧美日韩三级在线| 欧美精品九九99久久| 欧美精品国产精品| 717成人午夜免费福利电影| 欧美日韩精品二区第二页| 欧美日韩精品是欧美日韩精品| 91久久精品一区二区二区| 91传媒视频在线播放| 欧美视频在线一区| 欧美裸体bbwbbwbbw| 欧美一级黄色大片| 久久人人97超碰com| 久久久久久免费网| 亚洲国产精品v| 亚洲欧洲日韩女同| 亚洲精品视频免费看| 午夜精品123| 全国精品久久少妇| 国产一区福利在线| www.欧美色图| 欧美日韩一级黄| 精品国产1区二区| 国产片一区二区| 亚洲精品视频观看| 日本不卡的三区四区五区| 极品少妇一区二区| 99在线精品观看| 欧美男男青年gay1069videost| 日韩欧美中文字幕精品| 久久精品一区二区三区不卡牛牛| 图片区小说区区亚洲影院| 麻豆专区一区二区三区四区五区| 国产精品亚洲视频| 欧美中文一区二区三区| 欧美一区二区三区性视频| 国产日本一区二区| 一区二区高清在线| 激情文学综合插| 一本久久精品一区二区| 日韩一区二区三区三四区视频在线观看| 久久综合成人精品亚洲另类欧美| 亚洲视频一区在线| 精品在线播放午夜| 欧美中文字幕不卡| 久久精品一区二区| 五月婷婷久久丁香| 成人黄色电影在线 | 国产 日韩 欧美大片| 色婷婷综合激情| 26uuu另类欧美亚洲曰本| 亚洲免费观看高清完整| 久久超碰97中文字幕| 99国产精品久久久久| 日韩精品中文字幕在线不卡尤物 | 精品国内片67194| 亚洲精品日韩一| 国产福利一区二区三区视频| 欧美老女人第四色| 亚洲欧美一区二区三区久本道91| 国内精品免费在线观看| 欧美日韩精品一区二区天天拍小说| 国产日韩成人精品| 久久成人免费日本黄色| 欧美系列亚洲系列| 亚洲天堂免费在线观看视频| 久久精品国产免费| 欧美肥妇free| 亚洲一区二区三区中文字幕在线| 成人在线综合网| 久久伊人蜜桃av一区二区| 午夜欧美在线一二页| 色婷婷亚洲婷婷| 中文字幕在线不卡一区| 国产一区不卡视频| 欧美一级午夜免费电影| 亚洲第一综合色| 色88888久久久久久影院按摩| 国产精品伦一区| 国产成人精品一区二区三区网站观看| 日韩精品一区二区三区swag| 日韩国产高清影视| 在线不卡一区二区| 日韩制服丝袜av| 91精品一区二区三区久久久久久| 亚洲综合图片区| 欧美在线观看视频一区二区| 亚洲狠狠丁香婷婷综合久久久| 91在线一区二区三区| 亚洲人成精品久久久久| 色偷偷久久一区二区三区|