现在网上有的大部分都是理论,这里将给出一个简单加密模块的全部源程序(源代码)至于RSA的理论网上一大把,它是基于公钥加密体制的一种算法。这个实例主要是用来将某一重要文件绑定到一个IP地址上。把它拷贝下来,存为CODE.C,然后执行GCC–OCODECODE.C然后用./CODEE[IPADDRESS][FILENAME]对文件进行加密。或用./CODED[IPADDRESS]进行解密整个过程中产生了两个中间文件,至于什么文件,你去试一试就知道啦!#include"stdio.h"#include"string.h"inte,d=1,n;main(intargc,char*argv[]){intip,fai,p=43,q=59,ch1,i=0,j=0,edch,dech=0;char*num,*cha,ch,*file={"index.html"};FILE*fp,*fp2;if(argc<2){printf("paramatererror!");exit(0);}if(argc>3){file=argv[3];}//printf("%s,",file)e=iptoint(argv[2]);//printf("%s,%s",argv[1],argv[2]);switch(*argv[1]){case'e'://printf("e=%d",e);if((fp2=fopen("encode.htm","w+"))==NULL){printf("can'topenfile");exit(0);}"code.c"199L,3571C}n=p*q;fai=(p-1)*(q-1);if((fp=fopen(file,"r"))==NULL){printf("can'topengivingfile");exit(0);}else{while((ch1=fgetc(fp))!=EOF){edch=fmod(ch1,e,n);if(edch>0&&edch<10){fprintf(fp2,"%s","000");fprintf(fp2,"%d",edch);}elseif(edch<100&&edch>10){fprintf(fp2,"%s","00");fprintf(fp2,"%d",edch);}elseif(edch<1000&&edch>100){fprintf(fp2,"%s","0");fprintf(fp2,"%d",edch);}elseif(edch<10000&&edch>1000){fprintf(fp2,"%d",edch);}elsefputc('\n',fp2);}}close(fp);close(fp2);break;case'd'://printf("d=%d",e);if((fp2=fopen("decode.html","w+"))==NULL){if((fp2=fopen("decode.html","w+"))==NULL){printf("can'topenfile");exit(0);}n=p*q;fai=(p-1)*(q-1);while(((d*e)%fai)!=1)d++;if((fp=fopen("encode.htm","r"))==NULL){printf("can'topenfile");exit(0);}else{i=0;//printf("e=%d,d=%d,n=%d,",e,d,n);while((ch=fgetc(fp))!=EOF){if(i==4){//dech=((int)num[0])*1000+((int)num[1])*100+((int)num[2])*10+(int)num[3];//printf("yuan=%d,",dech);dech=fmod(dech,d,n);//printf("new=%d,",dech);fprintf(fp2,"%c",dech);i=0;dech=0;//}switch(ch){case'9':dech=dech*10+9;break;case'1':dech=dech*10+1;break;case'2':dech=dech*10+2;break;case'3':dech=dech*10+3;break;case'4':dech=dech*10+4;break;case'3':dech=dech*10+3;break;case'4':dech=dech*10+4;break;case'5':dech=dech*10+5;break;case'6':dech=dech*10+6;break;case'7':dech=dech*10+7;break;case'8':dech=dech*10+8;break;default:dech=dech*10;}//printf("dech=%d,",dech);num[i]=ch;i++;}dech=fmod(dech,d,n);fprintf(fp2,"%c",dech);}close(fp);close(fp2);break;default:printf("Usage:code[option]...[IpAddress]...\n");printf("Listinformationabouttheoption\n");printf("ebindipaddresstoindex.html\n");printf("ddecodefromtheencodeingfiletoindex2.html");}}intiptoint(ip)char*ip;{inti,ei=0,len;intprime=0;len=strlen(ip);len=strlen(ip);for(i=0;i'0'&&ip[i]<'9')ei=ei+i*((int)ip[i]);}ei=ei/1000+(ei/100)%10+(ei/10)%10+ei%10;//printf("%d",ei);//len=ei/2;//while(prime==0)//indent:Standardinput:2:Error:Unexpectedendoffilewhile(((ei%2)==0)||((ei%3)==0)){ei=ei+1;}/*prime=1;for(i=0;i