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

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

?? idea.c

?? 實現IDEA加密算法與解密算法 IDEA(International Data Encryption Algorithm)是瑞士的James Massey
?? C
字號:
#ifndef _IDEA_DOT_H
#define _IDEA_DOT_H

#include <stdio.h>
#include <time.h>
#include <process.h>
#include <io.h>
#include <string.h>
#include <conio.h>

#define IDEAKEYSIZE 16
#define IDEABLOCKSIZE 8
#define word16 unsigned int
#define word32 unsigned long int
#define ROUNDS	8
#define KEYLEN	(6*ROUNDS+4)
#define tempfilename "tempfile.鋘c"


int end_of_file,noisy,overwrite;   /*global vars*/

#define low16(x) ((x) & 0xffff)

typedef unsigned int uint16;
typedef word16 IDEAkey[KEYLEN];

/*IDEA Algorithm functions */
void en_key_idea(word16 userkey[8],IDEAkey Z);
void de_key_idea(IDEAkey Z, IDEAkey DK);
void cipher_idea(word16 in[4],word16 out[4],IDEAkey Z);
uint16 inv(uint16 x);
uint16 mul(uint16 a,uint16 b);

/*file handling functions*/
char read_char_from_file(FILE *fp);
word16 read_word16_from_file(FILE *fp);
void write_char_to_file(char data,FILE *fp);
void write_word16_to_file(word16 data,FILE *fp);
void cipher_file(FILE *in,FILE *out,word16 *key);
void decipher_file(FILE *in,FILE *out,word16 *key);
void swap_files_and_clean_up(char *file);

#endif
static uint16 inv(uint16 x)
{
   uint16 t0,t1;
   uint16 q,y;
   if (x<=1)
      return x;
   t1=(uint16)(0x10001l/x);
   y=(uint16)(0x10001l%x);
   if (y==1)
	return low16(1-t1);
   t0=1;
   do
   {
      q=x/y;
      x=x%y;
      t0+=q*t1;
      if (x==1)
	return t0;
      q=y/x;
      y=y%x;
      t1+=q*t0;
   } while (y!=1);
   return low16(1-t1);
}

static void en_key_idea(word16 *userkey, word16 *Z)
{
   int i,j;
   /* shifts */
   for (j=0;j<8;j++)
      Z[j]=*userkey++;
   for (i=0;j<KEYLEN;j++)
   {
      i++;
      Z[i+7]=((Z[i&7] << 9) | (Z[i+1 & 7] >> 7));
      Z+=i&8;
      i&=7;
   }
}

static void de_key_idea(IDEAkey Z,IDEAkey DK)
{
   int j;
   uint16 t1,t2,t3;
   IDEAkey T;
   word16 *p=T+KEYLEN;
   t1=inv(*Z++);
   t2=-*Z++;
   t3=-*Z++;
   *--p=inv(*Z++);
   *--p=t3;
   *--p=t2;
   *--p=t1;
   for (j=1;j<ROUNDS;j++)
   {
      t1=*Z++;
      *--p=*Z++;
      *--p=t1;
      t1=inv(*Z++);
      t2=-*Z++;
      t3=-*Z++;
      *--p=inv(*Z++);
      *--p=t2;
      *--p=t3;
      *--p=t1;
   }
   t1=*Z++;
   *--p=*Z++;
   *--p=t1;
   t1=inv(*Z++);
   t2=-*Z++;
   t3=-*Z++;
   *--p=inv(*Z++);
   *--p=t3;
   *--p=t2;
   *--p=t1;
   /*copy and destroy temp copy*/
   for(j=0,p=T;j<KEYLEN;j++)
   {
      *DK++=*p;
      *p++=0;
   }
}


uint16 mul(uint16 a, uint16 b)
{
   word32 p;

   if (a)
   {
      if (b)
      {
	 p=(word32)a*b;
	 b=(uint16)(low16(p));
	 a=(uint16)(p>>16);
	 return b-a+(b<a);
      }
      else
      {
	 return 1-a;
      }
   }
   else
      return 1-b;
}

#define MUL(x,y) (x=mul(low16(x),y))


#define CONST

static void cipher_idea(word16 in[4],word16 out[4],register CONST IDEAkey Z)
{
   register uint16 x1,x2,x3,x4,t1,t2;
   int r=ROUNDS;
   x1=*in++; x2=*in++;
   x3=*in++; x4=*in;
   do
   {
      MUL(x1,*Z++);
      x2+=*Z++;
      x3+=*Z++;
      MUL(x4,*Z++);
      t2=x1^x3;
      MUL(t2,*Z++);
      t1=t2+(x2^x4);
      MUL(t1,*Z++);
      t2=t1+t2;
      x1^=t1;
      x4^=t2;
      t2^=x2;
      x2=x3^t1;
      x3=t2;
   } while (--r);
   MUL(x1,*Z++);
   *out++=x1;
   *out++=(x3+*Z++);
   *out++=(x2+*Z++);
   MUL(x4,*Z);
   *out=x4;
}

char read_char_from_file(FILE *fp)
{
   char temp=0;

   if ((fread(&temp,sizeof(char),1,fp))!=1)
      end_of_file=1;

   return (temp);
}

word16 read_word16_from_file(FILE *fp)
{
   word16 temp=0;

   if ((fread(&temp,sizeof(word16),1,fp))!=1)
      end_of_file=1;

   return temp;
}

void write_char_to_file(char data,FILE *fp)
{
   if ((fwrite(&data,sizeof(char),1,fp))!=1)
   {
      printf("Fatal Error writing output file!!!\n");
      exit(-1);
   }
}

void write_word16_to_file(word16 data,FILE *fp)
{
   if ((fwrite(&data,sizeof(word16),1,fp))!=1)
   {
      printf("Fatal Error writing output file!!!\n");
      exit(-1);
   }
}


void cipher_file(FILE *in,FILE *out,word16 *key)
{
   word16 input[4],output[4];
   IDEAkey Z;
   int x,y;
   int count=0;
   long length;
   int temp;

   en_key_idea(key,Z);
   end_of_file=0;

   length=filelength(fileno(in));
   fwrite(&length,sizeof(long),1,out);

   while (!end_of_file)
   {
      x=0;

      while (x<4)
      {
	 input[x]=((word16)(read_char_from_file(in)<<8));
	 if (!end_of_file)
	 {
	    temp=read_char_from_file(in);
	    if (temp<0) temp+=256;
	    input[x]=input[x]|temp;
	    x++;
	 }
	 if (end_of_file)
	 {
	    while (x<4) input[x++]=0;
	    break;
	 }
      }

      cipher_idea(input,output,Z);

      for (y=0;y<x;y++)
      {
	 if (noisy) if (count++%256==0) printf(".");
	 write_word16_to_file(output[y],out);
      }
   }
}

void decipher_file(FILE *in,FILE *out,word16 *key)
{
   word16 input[4],output[4];
   int x,y;
   IDEAkey Z,DK;
   int count=0;
   long length=0;

   en_key_idea(key,Z);
   de_key_idea(Z,DK);

   end_of_file=0;

   fread(&length,sizeof(long),1,in);


   while (!end_of_file)
   {
      x=0;
      while (x<4)
      {
	 input[x]=read_word16_from_file(in);
	 if (end_of_file)
	    break;
	 x++;
      }
      cipher_idea(input,output,DK);
      for (y=0;y<x;y++)
      {
	 if (noisy) if (count++%256==0) printf(".");
	 if (length-->0)
	    write_char_to_file(((char)(output[y]>>8)),out);
	 if (length-->0)
	    write_char_to_file(((char)(output[y]&255)),out);
      }
   }
}

void swap_files_and_clean_up(char *file)
{
   long fsize,count;
   FILE *fp;
   char temp[100];

   if (overwrite)
   {
      if ((fp=fopen(file,"r+b"))==NULL)
      {
	 printf("\nError overwriting old file, security compromised.\n");
      }
      else
      {
	 fseek(fp,0l,SEEK_END);
	 fsize=ftell(fp);
	 fseek(fp,0l,SEEK_SET);
	 for (count=0;count<fsize;count++)
	    fputc('0',fp);
	 fclose(fp);
      }

      if ((remove(file))!=0)
      {
	 printf("\nERROR removing old file <%s>\n",file);
	 printf("encoded data remains in temporary file <%s>\n",tempfilename);
	 exit(-1);
      }
   }
   else
   {
      strcpy(temp,file);
      file=strtok(temp,".");
      strcat(file,".enc");
   }

   if ((rename(tempfilename,file))!=0)
   {
      printf("\nERROR renaming temporary file <%s>!!\n",tempfilename);
      printf("Data is safely processed and stored in that file.\n");
      exit(-1);
   }
}

#define KBYTES 1024

void getuserkeyfromargv(word16 *key,char *arg)
{
   int x;

   for (x=0;x<strlen(arg) && x<8;x++)
   {
       if (x==0) key[x]=arg[x]<<8;
       else key[x]=((arg[x]<<8)|(key[x-1]>>8));
   }

   if (strlen(arg)>8) printf ("\nONLY first *8* characters of key used!!!\n");

   if (x<8) while (x<8) key[x++]=0;
}

main(int argc, char **argv)
{
   word16 userkey[8];
   char filename[100];
   FILE *fp,*temp;
   int to_or_from;


   noisy=1;
   overwrite=0;

   if (argc!=4)
   {
      printf("\nUsage: idea filename.ext [e|d[w]] key\n");
      printf("          e=encode   d=decode   w=overwrite file\n");
      printf("       NOTE: Key must be no longer than 8 characters long!!!\n");
      exit(-1);
   }
   else
   {
      strncpy(filename,argv[1],99);
      filename[99]='\0';
      if (argv[2][0]=='e') to_or_from=1;
      else if (argv[2][0]=='d') to_or_from=0;
      else
      {
	 printf("\nUsage: idea filename.ext [e|d[w]] key\n");
	 printf("		e=encrypt d=decrypt w=overwrite file\n");
	 printf("       NOTE: Key must be no longer than 8 characters long!!!\n");
	 exit(-1);
      }
      if (argv[2][1]=='w') overwrite=1;
      getuserkeyfromargv(userkey,argv[3]);
   }


   if ((fp=fopen(filename,"r+b"))==NULL)
   {
      printf("\nError opening File %s\n",filename);
      exit (-1);
   }

   if ((temp=fopen(tempfilename,"w+b"))==NULL)
   {
      printf("\nError opening temporary file\n");
      exit(-1);
   }

   if (to_or_from==1)
   {
      printf("\nEncoding file %s   ",filename);
      cipher_file(fp,temp,userkey);
   }
   else
   {
      printf("\nDecoding file %s   ",filename);
      decipher_file(fp,temp,userkey);
   }

   fclose (fp);
   fclose(temp);

   swap_files_and_clean_up(filename);

   return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产三级精品三级| 日韩欧美色电影| 亚洲视频你懂的| 国产精品的网站| 亚洲一区二区三区中文字幕 | 亚洲一二三四久久| 亚洲精品精品亚洲| 午夜久久久久久| 国产成人精品一区二| 欧美体内she精高潮| 久久美女艺术照精彩视频福利播放| 亚洲国产精品精华液ab| 亚洲高清一区二区三区| 国产在线播精品第三| 99re在线视频这里只有精品| 日韩丝袜美女视频| 亚洲美女屁股眼交| 韩国三级在线一区| 欧美性大战久久久久久久蜜臀| 欧美精品一区二区高清在线观看| 国产日韩欧美高清在线| 免费成人小视频| 在线免费观看视频一区| 国产亚洲女人久久久久毛片| 日韩专区在线视频| 97久久超碰国产精品| 精品少妇一区二区| 一区二区三区四区五区视频在线观看 | 成人黄页在线观看| 日韩免费性生活视频播放| 亚洲三级小视频| 精品一区二区三区在线播放| 色婷婷综合中文久久一本| 精品国产精品网麻豆系列 | 日韩欧美一级二级三级久久久| 亚洲人成伊人成综合网小说| 国内一区二区在线| 欧美一区二区三区影视| 亚洲国产wwwccc36天堂| av亚洲精华国产精华精华| 久久午夜色播影院免费高清 | 丁香激情综合国产| 精品日韩在线一区| 日本中文字幕不卡| 欧美电影在哪看比较好| 亚洲成a人片在线观看中文| www.亚洲免费av| 国产日韩欧美a| 国产成人一区在线| 国产欧美日韩另类一区| 国产风韵犹存在线视精品| 亚洲精品一区二区三区蜜桃下载| 久久超碰97中文字幕| 日韩一区二区电影在线| 男女性色大片免费观看一区二区| 欧美色图一区二区三区| 国产精品萝li| 不卡av免费在线观看| 中文字幕日韩一区二区| 99九九99九九九视频精品| 中文字幕亚洲成人| 成人综合在线网站| 亚洲精品一区二区三区香蕉| 国产一区二区视频在线播放| 国产日韩v精品一区二区| 国产精品资源在线| 亚洲国产精品国自产拍av| 成人午夜在线播放| 亚洲欧洲国产日本综合| 日本国产一区二区| 亚洲高清视频在线| 日韩欧美一区二区久久婷婷| 亚洲成av人片一区二区梦乃| 日韩天堂在线观看| 国产成都精品91一区二区三| **网站欧美大片在线观看| 在线观看精品一区| 日本视频一区二区三区| 精品福利一二区| 成人高清视频在线观看| 国产精品全国免费观看高清| 在线看不卡av| 国内精品久久久久影院色| 国产精品传媒在线| 欧美日韩精品一区二区三区| 久99久精品视频免费观看| 日本一区二区成人| 欧美在线制服丝袜| 韩国毛片一区二区三区| 亚洲天堂久久久久久久| 欧美日韩国产高清一区二区| 国产老肥熟一区二区三区| 亚洲蜜臀av乱码久久精品| 91精品国产综合久久久蜜臀粉嫩 | 欧美精品一区二区三区蜜桃视频 | 麻豆精品一二三| 国产精品激情偷乱一区二区∴| 欧美亚日韩国产aⅴ精品中极品| 久久精品国产网站| 亚洲日本一区二区| 久久一夜天堂av一区二区三区| 色香色香欲天天天影视综合网| 久久国产精品72免费观看| 亚洲午夜精品网| 亚洲在线免费播放| 一区二区在线电影| 一区二区三区中文字幕精品精品| 国产精品成人一区二区艾草| 国产精品区一区二区三区| 久久久久久久久99精品| 精品盗摄一区二区三区| 精品99一区二区三区| 日韩欧美资源站| 精品国产一区二区三区不卡| 精品久久久久久久久久久久包黑料| 欧美精品乱码久久久久久按摩| 在线观看日韩高清av| 欧美日韩不卡视频| 91精品国产一区二区人妖| 欧美一区二区三区精品| 欧美一级二级在线观看| 日韩欧美aaaaaa| 久久色在线观看| 中文无字幕一区二区三区| 国产精品免费久久久久| 亚洲日本中文字幕区| 一区二区国产视频| 天堂成人免费av电影一区| 免费美女久久99| 激情成人综合网| 国产盗摄一区二区| 91麻豆国产精品久久| 欧美日韩亚洲高清一区二区| 欧美一区二区日韩一区二区| 2020国产精品久久精品美国| 欧美国产精品专区| 亚洲午夜在线电影| 久久精品国产色蜜蜜麻豆| 成人激情文学综合网| 欧美性受xxxx| 久久人人超碰精品| 亚洲人成人一区二区在线观看| 婷婷亚洲久悠悠色悠在线播放| 激情偷乱视频一区二区三区| 91社区在线播放| 91精品在线免费| 国产亚洲成aⅴ人片在线观看| 国产精品国产自产拍高清av王其| 亚洲网友自拍偷拍| 国产精一区二区三区| 91免费观看视频在线| 日韩午夜在线观看视频| 国产精品国产馆在线真实露脸| 丝袜亚洲另类欧美| 国产成人综合在线观看| 欧美亚日韩国产aⅴ精品中极品| 精品久久久久久综合日本欧美 | 国产欧美日韩一区二区三区在线观看| 亚洲欧美电影院| 久久精品国产精品亚洲红杏| 99久久婷婷国产精品综合| 91精品国产91久久久久久一区二区 | 欧美美女直播网站| 国产精品无人区| 六月婷婷色综合| 欧美日韩午夜精品| 一区在线播放视频| 九九精品视频在线看| 欧美体内she精视频| 国产精品理伦片| 国产一区二区三区久久悠悠色av| 欧美日韩亚洲综合一区| 日韩理论片一区二区| 黄页网站大全一区二区| 欧美日韩成人在线一区| 亚洲久草在线视频| 成人高清视频免费观看| 久久久久97国产精华液好用吗| 日本不卡不码高清免费观看| 在线观看av一区二区| 中文字幕一区三区| 国产xxx精品视频大全| 精品美女一区二区| 美女国产一区二区| 9191久久久久久久久久久| 亚洲成年人影院| 欧美性xxxxxxxx| 一区二区三区精品在线观看| 成人精品亚洲人成在线| 国产日韩精品一区二区三区在线| 九九热在线视频观看这里只有精品| 欧美精品一级二级三级| 亚洲国产视频直播| 在线免费观看日本一区| 亚洲午夜日本在线观看| 91国产福利在线| 亚洲精品成人天堂一二三| 91在线视频观看| 亚洲欧美视频一区| 色呦呦一区二区三区|