資源簡介
數據加密與數字簽名系統,轉發非原創,走過路過不要錯過。
代碼片段和文件信息
#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
- 上一篇:十六進制轉換成相應ASCII碼
- 下一篇:youtube 字幕工具
評論
共有 條評論