rsa加密解密算法C语言代码.doc

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
rsa加密解密算法C语言代码

#includestdio.h #includestring.h #include stdlib.h #include time.h #include math.h #include malloc.h #define MAX 100 #define LEN sizeof(struct slink) void sub(int a[MAX],int b[MAX] ,int c[MAX] ); struct slink { int bignum[MAX]; /*bignum[98]用来标记正负号,1正,0负bignum[99]来标记实际长度*/ struct slink *next; }; /*/--------------------------------------自己建立的大数运算库-------------------------------------*/ void print( int a[MAX] ) { int i; for(i=0;ia[99];i++) printf(%d,a[a[99]-i-1]); printf(\n\n); return; } int cmp(int a1[MAX],int a2[MAX]) { int l1, l2; int i; l1=a1[99]; l2=a2[99]; if (l1l2) return 1; if (l1l2) return -1; for(i=(l1-1);i=0;i--) { if (a1[i]a2[i]) return 1 ; if (a1[i]a2[i]) return -1; } return 0; } void mov(int a[MAX],int *b) { int j; for(j=0;jMAX;j++) b[j]=a[j]; return ; } void mul(int a1[MAX],int a2[MAX],int *c) { int i,j; int y; int x; int z; int w; int l1, l2; l1=a1[MAX-1]; l2=a2[MAX-1]; if (a1[MAX-2]==- a2[MAX-2]==-) c[MAX-2]=0; else if (a1[MAX-2]==-) c[MAX-2]=-; else if (a2[MAX-2]==-) c[MAX-2]=-; for(i=0;il1;i++) { for(j=0;jl2;j++) { x=a1[i]*a2[j]; y=x/10; z=x%10; w=i+j; c[w]=c[w]+z; c[w+1]=c[w+1]+y+c[w]/10; c[w]=c[w]%10; } } w=l1+l2; if(c[w-1]==0)w=w-1; c[MAX-1]=w; return; } void add(int a1[MAX],int a2[MAX],int *c) { int i,l1,l2; int len,temp[MAX]; int k=0; l1=a1[MAX-1]; l2=a2[MAX-1]; if((a1[MAX-2]==-)(a2[MAX-2]==-)) { c[MAX-2]=-; } else if (a1[MAX-2]==-) { mov(a1,temp); temp[MAX-2]=0; sub(a2,temp,c); return; } else if (a2[MAX-2]==-) { mov(a2,temp); temp[98]=0; sub(a1,temp,c); return; } if(l1l2)len=l1; else len=l2; for(i=0;ilen;i++) { c[i]=(a1[i]+a2[i]+k)%10; k=(a1[i]+a2[i]+k)/10; } if(l1len) { for(i=len;il1;i++) { c[i]=(a1[i]+k)%10; k=(a1[i]+k)/10; } if(k!=0) { c[l1]=k; len=l1+1; } else len=l1; } else { for(i=len;il2;i++) { c[i]=(a2

文档评论(0)

小教资源库 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档