资源简介

数据加密与数字签名系统,转发非原创,走过路过不要错过。

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
char a;
void perr(char *);
int *enc();
char filename[100];
char newfile[100];
char pkfile[100];
static char x[20];
int cmp();
int *tz();
int *sub();
int *multi();
int *chu();
int *mn();
FILE *fp;
FILE *nfp;
FILE *kfp;
 char n[20];
char k[20];
main(argcargv)
int argc; char **argv;
{unsigned long block=0;
int *x;
char x2[20];
 long num=0pi=0;
 char ach;
 int rj;
 printf(“Do you like to encrypt your file ?(Y/N):“);
 gets(&a);
 if (a==‘N‘||a==‘n‘) exit(1);
 if(argc>3||argc==2) perr(“Usage: encrypt [filename] [pkfile]“);
 if(argc==3) {strcpy(filenameargv[1]);strcpy(pkfileargv[2]);}
 else
 {
 printf(“\nEnter the filename needing encrypting: “);gets(filename);
 printf(“\nEnter your pkfile: “);gets(pkfile);
 }
 strcpy(newfilefilename);
 while(newfile[i]!=‘\0‘)
 {i=i+1;}
 ch=newfile[i-1];
 newfile[i-1]=‘#‘;
 if((fp=fopen(filename“r“))==NULL) perr(“Can‘t open file!“);
 if((kfp=fopen(pkfile“r“))==NULL) perr(“Can‘t open file!“);
 if((nfp=fopen(newfile“w+“))==NULL) perr(“Can‘t creat new file!“);
 fscanf(kfp“%s %s“nk);
  printf(“\nn=%sk=%s\n“nk);
 fclose(kfp);
 fputc(chnfp);
 while((fgetc(fp))!=EOF)
  {num++;}
 printf(“n=%sk=%s“nk);
 fprintf(nfp“%u “num);
 rewind(fp);
 r=num%3;
 p=(num-r)/3;
 i=0;
 while(i {i=i+1;block=0;
 fread(&block31fp);printf(“\nblock=%u“block);
 x=enc(block);for (j=0;j<20;j++)x2[j]=x[j]+48;
x2[20]=‘\0‘;
 fwrite(x2201nfp);
 }
 if (r!=0)
 {block=0;
  fread(&blockr1fp);printf(“\nblock=%u“block);
x=enc(block);for (i=0;i<20;i++)x2[i]=x[i]+48;
x2[20]=‘\0‘;
 fwrite(x2201nfp);}
  fclose(fp);
  fclose(nfp);
  }

void perr(s)
char *s;
{
printf(“\n%s“s); exit(1);
}

int *mn(int c[40]int a[40])
{int i;
unsigned long d=0;
 int m[40];
 int x[40]y[40];
for(i=0;i<20;i++)
{x[i]=n[i]-48;
y[i]=n[i]-48;
}
x[10]++;
for(i=20;i<40;i++){x[i]=0;y[i]=0;}
for(i=17;i>=10;i--){d=x[i]+d*10;}

multi(ca);

while(cmp(cx)){
for(i=10;i<40;i++)m[i-10]=c[i];
for(i=30;i<40;i++)m[i]=0;
chu(md);
multi(my);

sub(cm);

}
while(cmp(cy))
{sub(cy);}
return(c);
}




int *multi(int n2[40]int n1[40])    /*乘法++*/
{int i;

int mul[40];

int ab;
for(i=0;i<40;i++)mul[i]=0;
for(a=0;a<20;a++)
{
for(b=0;b<20;b++)
{
mul[a+b]=mul[a+b]+n2[b]*n1[a];
}
}
tz(mul);
for(a=0;a<40;a++)
{n2[a]=mul[a];}
return(n2);}

int *tz(int *mut)        /*调整数组++*/   
{
int abbii;

for(a=0;a<40;a++)
{
i=0;
b=mut[a];
mut[a]=mut[a]%10;
while(b)
{
i++;
b=b/10;
bi=b%10;
mut[a+i]+=bi;
}
}return(mut);

}
int cmp(int *n1int *m)                           /*比较 */
{

int i=39;

while(n1[i]==m[i])
{
i--;
}
if(i<0){return 0;}
else if(n1[i]>m[i])
return 1 ;
else 
return 0 ;
}

int *chu(int *munsigned long d )  /*除法*/
{unsigned long w1=0;
int ia;
 int u[4

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3562  2002-06-16 20:32  数据加密与数字签名系统\ENCODE.C

     文件       3840  2002-06-16 20:48  数据加密与数字签名系统\Encrypt.c

     文件       4986  2002-06-11 21:25  数据加密与数字签名系统\Key.c

     文件       3614  2002-06-16 21:21  数据加密与数字签名系统\VERIFY.C

     文件       3807  2002-06-16 21:11  数据加密与数字签名系统\SIGN.C

    ....SH.    176164  2003-12-31 14:09  数据加密与数字签名系统\ENCODE.ZMX

    ....SH.    180257  2003-12-31 14:09  数据加密与数字签名系统\Key.ZMX

    ....SH.    176171  2003-12-31 14:09  数据加密与数字签名系统\SIGN.ZMX

    ....SH.    176173  2003-12-31 14:09  数据加密与数字签名系统\VERIFY.ZMX

    ....SH.    176165  2003-12-31 14:09  数据加密与数字签名系统\Encrypt.ZMX

     目录          0  2002-07-21 08:27  数据加密与数字签名系统

----------- ---------  ---------- -----  ----

               904739                    11


评论

共有 条评论